@cuemath/leap 2.8.60-as3 → 2.8.60-beta-0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/assets/line-icons/icons/bin2.js +8 -7
  2. package/dist/assets/line-icons/icons/bin2.js.map +1 -1
  3. package/dist/features/analytics-events/whitelist-events.js +9 -7
  4. package/dist/features/analytics-events/whitelist-events.js.map +1 -1
  5. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +2 -2
  6. package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
  7. package/dist/features/chapters-v2/chapter-details/chapter-details.js +24 -24
  8. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -1
  9. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +16 -15
  10. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -1
  11. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +8 -12
  12. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
  13. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +72 -76
  14. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -1
  15. package/dist/features/chapters-v2/utils/index.js +4 -5
  16. package/dist/features/chapters-v2/utils/index.js.map +1 -1
  17. package/dist/features/chapters-v2/utils/node-card-utils.js +34 -62
  18. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
  19. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js +75 -62
  20. package/dist/features/circle-games/game-launcher/comps/segmented-game-card/segmented-game-card.js.map +1 -1
  21. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +110 -127
  22. package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
  23. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js +4 -12
  24. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step-styled.js.map +1 -1
  25. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js +105 -128
  26. package/dist/features/milestone/create/comps/chapters-selection-step/chapters-selection-step.js.map +1 -1
  27. package/dist/features/milestone/create/milestone-create.js +43 -49
  28. package/dist/features/milestone/create/milestone-create.js.map +1 -1
  29. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js +1 -1
  30. package/dist/features/milestone/edit/comps/edit-milestone-modal/api/get-milestone.js.map +1 -1
  31. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js +40 -42
  32. package/dist/features/milestone/edit/goal-drafts/goal-draft-edit-container.js.map +1 -1
  33. package/dist/features/milestone/edit/goal-edit-container.js +62 -64
  34. package/dist/features/milestone/edit/goal-edit-container.js.map +1 -1
  35. package/dist/features/milestone/edit/milestone-edit-container.js +52 -54
  36. package/dist/features/milestone/edit/milestone-edit-container.js.map +1 -1
  37. package/dist/features/milestone/milestone-list-container/api/get-milestone-resources.js.map +1 -1
  38. package/dist/features/milestone/milestone-list-container/api/get-tests-list.js.map +1 -1
  39. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +89 -96
  40. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
  41. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +28 -28
  42. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
  43. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +111 -120
  44. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
  45. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +61 -59
  46. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
  47. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +85 -83
  48. package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
  49. package/dist/features/milestone/milestone-list-container/milestone-list-container.js +90 -88
  50. package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
  51. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +98 -82
  52. package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
  53. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js +18 -16
  54. package/dist/features/milestone/milestone-tests/tests-creation/tests-creation.js.map +1 -1
  55. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +71 -0
  56. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +1 -0
  57. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js +31 -0
  58. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +1 -0
  59. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +38 -0
  60. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +1 -0
  61. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js +79 -0
  62. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +1 -0
  63. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js +18 -0
  64. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js.map +1 -0
  65. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js +51 -0
  66. package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list.js.map +1 -0
  67. package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js +11 -0
  68. package/dist/features/milestone/milestone-tests/tests-list/tests-list-styled.js.map +1 -0
  69. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +144 -0
  70. package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -0
  71. package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
  72. package/dist/features/sheets/resources-list/resource-item/styled.js +1 -0
  73. package/dist/features/sheets/resources-list/resource-item/styled.js.map +1 -1
  74. package/dist/features/sheets/sheets-analytics-events.js +6 -2
  75. package/dist/features/sheets/sheets-analytics-events.js.map +1 -1
  76. package/dist/features/ui/lottie-animation/lottie-animation.js +24 -39
  77. package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
  78. package/dist/features/ui/theme/button.js +5 -5
  79. package/dist/features/ui/theme/button.js.map +1 -1
  80. package/dist/index.d.ts +13 -39
  81. package/dist/index.js +377 -381
  82. package/dist/index.js.map +1 -1
  83. package/package.json +1 -1
  84. package/dist/assets/line-icons/icons/skip-colored.js +0 -43
  85. package/dist/assets/line-icons/icons/skip-colored.js.map +0 -1
  86. package/dist/features/homework/card-menu-options.js +0 -25
  87. package/dist/features/homework/card-menu-options.js.map +0 -1
  88. package/dist/features/homework/homework-card.js +0 -210
  89. package/dist/features/homework/homework-card.js.map +0 -1
  90. package/dist/features/homework/styles.js +0 -114
  91. package/dist/features/homework/styles.js.map +0 -1
  92. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js +0 -157
  93. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-container.js.map +0 -1
  94. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js +0 -19
  95. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view-styled.js.map +0 -1
  96. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js +0 -63
  97. package/dist/features/milestone/milestone-tests/test-list-v2/test-list-view.js.map +0 -1
  98. package/dist/features/recent-chapters/api/get-recent-chapters.js +0 -9
  99. package/dist/features/recent-chapters/api/get-recent-chapters.js.map +0 -1
  100. package/dist/features/recent-chapters/recent-chapters-styled.js +0 -16
  101. package/dist/features/recent-chapters/recent-chapters-styled.js.map +0 -1
  102. package/dist/features/recent-chapters/recent-chapters.js +0 -43
  103. package/dist/features/recent-chapters/recent-chapters.js.map +0 -1
  104. package/dist/features/sheet-v2/resource-list/resource-list.js +0 -52
  105. package/dist/features/sheet-v2/resource-list/resource-list.js.map +0 -1
@@ -1,46 +1,45 @@
1
- import { jsx as e, jsxs as d, Fragment as M } from "react/jsx-runtime";
2
- import { memo as P, useCallback as T } from "react";
3
- import X from "../../../../../assets/line-icons/icons/eye2.js";
4
- import j from "../../../../../assets/line-icons/icons/redo.js";
5
- import z from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
6
- import F from "../../../../ui/context-menu/context-menu.js";
7
- import Y from "../../../../ui/text/text.js";
8
- import { BLOCK_TYPE as Z } from "../../../constants/block-constants.js";
9
- import { NODE_CARD_STATES as h } from "../../../constants/node-constants.js";
10
- import { getNodeTypeBasedBgImage as q } from "../../../utils/index.js";
11
- import { getNodeCardBasedIcon as J } from "../../../utils/node-card-utils.js";
12
- import Q from "../border-path-animation.js";
13
- import { NodeCardContainer as U, NodeCardInfoWrapper as V, IconWrapper as ee, StyledImportantIcon as te, NodeCardContentWrapper as oe, NodeCardTitle as re } from "../node-card-styled.js";
14
- import ne from "../node-card-tags.js";
15
- import ae from "../node-menu-options/node-menu-options.js";
16
- const ke = P((A) => {
1
+ import { jsx as e, jsxs as d, Fragment as G } from "react/jsx-runtime";
2
+ import { memo as K, useCallback as T } from "react";
3
+ import P from "../../../../../assets/line-icons/icons/eye2.js";
4
+ import X from "../../../../../assets/line-icons/icons/redo.js";
5
+ import j from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
6
+ import M from "../../../../ui/context-menu/context-menu.js";
7
+ import z from "../../../../ui/text/text.js";
8
+ import { BLOCK_TYPE as F } from "../../../constants/block-constants.js";
9
+ import { NODE_CARD_STATES as l } from "../../../constants/node-constants.js";
10
+ import { getNodeTypeBasedBgImage as Y } from "../../../utils/index.js";
11
+ import { getNodeCardBasedIcon as Z } from "../../../utils/node-card-utils.js";
12
+ import q from "../border-path-animation.js";
13
+ import { NodeCardContainer as J, NodeCardInfoWrapper as Q, IconWrapper as U, StyledImportantIcon as V, NodeCardContentWrapper as ee, NodeCardTitle as te } from "../node-card-styled.js";
14
+ import oe from "../node-card-tags.js";
15
+ import re from "../node-menu-options/node-menu-options.js";
16
+ const Ie = K((k) => {
17
17
  const {
18
18
  nodeData: t,
19
- imageHue: S,
20
- blockType: w,
19
+ imageHue: w,
20
+ blockType: A,
21
21
  onNodeAttempt: r,
22
22
  onNodeReattempt: n,
23
23
  onNodeReview: a,
24
24
  onNodeView: i
25
- } = A, {
26
- accuracy: E,
27
- attempt_location: N,
25
+ } = k, {
26
+ accuracy: S,
27
+ attempt_location: E,
28
28
  node_type: s,
29
- card_header: y,
30
- title: x,
29
+ card_header: N,
30
+ title: y,
31
31
  state: c,
32
- is_optional: f,
33
- sheet_statement: u,
34
- permissions: B,
35
- marked_as_completed: C
32
+ is_optional: p,
33
+ sheet_statement: h,
34
+ permissions: x
36
35
  } = t, {
37
- can_review: $,
38
- can_reattempt: g,
39
- can_start: m,
40
- can_resume: l
41
- } = B, I = w === Z.GOAL, o = c === h.LOCKED, L = c === h.NOT_STARTED, R = c === h.IN_PROGRESS, W = N === "INCLASS", v = !u || !I, D = m || l, _ = !f && (R || L), p = !D && (g || $), H = q(s), k = J(s), O = T(
42
- (b) => {
43
- switch (b) {
36
+ can_review: u,
37
+ can_reattempt: f,
38
+ can_start: C,
39
+ can_resume: $
40
+ } = x, g = A === F.GOAL, o = c === l.LOCKED, B = c === l.NOT_STARTED, L = c === l.IN_PROGRESS, R = E === "INCLASS", W = !h || !g, I = !p && (L || B), m = f || u, v = Y(s), _ = Z(s), b = T(
41
+ (O) => {
42
+ switch (O) {
44
43
  case "node-card-review":
45
44
  a == null || a(t);
46
45
  return;
@@ -48,71 +47,68 @@ const ke = P((A) => {
48
47
  n == null || n(t);
49
48
  return;
50
49
  default:
51
- throw new Error(`No callback function for ${b}`);
50
+ throw new Error(`No callback function for ${O}`);
52
51
  }
53
52
  },
54
53
  [t, n, a]
55
- ), G = T(() => {
56
- p || o || (m || l ? r == null || r(t) : C && (i == null || i(t)));
57
- }, [
58
- l,
59
- m,
60
- t,
61
- r,
62
- i,
63
- p,
64
- o,
65
- C
66
- ]), K = [
54
+ ), D = T(() => {
55
+ if (!(m || o)) {
56
+ if (C || $) {
57
+ r == null || r(t);
58
+ return;
59
+ }
60
+ i == null || i(t);
61
+ }
62
+ }, [$, C, t, r, i, m, o]), H = [
67
63
  {
68
64
  id: "node-card-review",
69
65
  label: "Review",
70
- icon: X,
71
- disabled: !$,
72
- onClick: O
66
+ icon: P,
67
+ disabled: !u,
68
+ onClick: b
73
69
  },
74
70
  {
75
71
  id: "node-card-reattempt",
76
72
  label: "Reattempt",
77
- icon: j,
78
- disabled: !g,
79
- onClick: O
73
+ icon: X,
74
+ disabled: !f,
75
+ onClick: b
80
76
  }
81
77
  ];
82
78
  return /* @__PURE__ */ e(
83
- F,
79
+ M,
84
80
  {
85
81
  targetElement: /* @__PURE__ */ e(
86
- U,
82
+ J,
87
83
  {
88
- $showOutline: !_,
89
- $background: `${S}_2`,
84
+ $showOutline: !I,
85
+ $background: `${w}_2`,
90
86
  $disabled: o,
91
- onClick: G,
87
+ onClick: D,
92
88
  children: /* @__PURE__ */ d(
93
- z,
89
+ j,
94
90
  {
95
91
  renderAs: "primary",
96
- tooltipItem: u,
92
+ tooltipItem: h,
97
93
  position: "bottom",
98
94
  zIndex: 5,
99
- hidden: v,
95
+ hidden: W,
100
96
  parentWidth: "100%",
101
97
  widthX: 11.25,
102
98
  children: [
103
99
  /* @__PURE__ */ d(
104
- V,
100
+ Q,
105
101
  {
106
102
  $flexDirection: "row",
107
103
  $alignItems: "center",
108
104
  $heightX: 3.5,
109
- $bgImage: H,
105
+ $bgImage: v,
110
106
  $gutterX: 0.78125,
111
107
  $flexGap: 8.5,
112
108
  $opacity: o ? 0.5 : 1,
113
109
  children: [
114
110
  /* @__PURE__ */ d(
115
- ee,
111
+ U,
116
112
  {
117
113
  $width: 31,
118
114
  $height: 31,
@@ -121,28 +117,28 @@ const ke = P((A) => {
121
117
  $alignItems: "center",
122
118
  $justifyContent: "center",
123
119
  children: [
124
- k && /* @__PURE__ */ e(k, { width: 20, height: 20 }),
125
- !f && /* @__PURE__ */ e(te, {})
120
+ _ && /* @__PURE__ */ e(_, { width: 20, height: 20 }),
121
+ !p && /* @__PURE__ */ e(V, {})
126
122
  ]
127
123
  }
128
124
  ),
129
- /* @__PURE__ */ d(Y, { $renderAs: "ac4-black", $color: "BLACK", children: [
130
- y,
125
+ /* @__PURE__ */ d(z, { $renderAs: "ac4-black", $color: "BLACK", children: [
126
+ N,
131
127
  " ",
132
- W && ". CW"
128
+ R && ". CW"
133
129
  ] }),
134
- _ && /* @__PURE__ */ e(Q, {})
130
+ I && /* @__PURE__ */ e(q, {})
135
131
  ]
136
132
  }
137
133
  ),
138
- /* @__PURE__ */ e(ne, { nodeType: s, state: c, accuracy: E }),
139
- !I && /* @__PURE__ */ e(oe, { $background: "WHITE_1", $heightX: 4, children: /* @__PURE__ */ e(
140
- re,
134
+ /* @__PURE__ */ e(oe, { nodeType: s, state: c, accuracy: S }),
135
+ !g && /* @__PURE__ */ e(ee, { $background: "WHITE_1", $heightX: 4, children: /* @__PURE__ */ e(
136
+ te,
141
137
  {
142
138
  $renderAs: "ab3",
143
139
  $color: "BLACK_1",
144
140
  $opacity: o ? 0.5 : 1,
145
- children: x
141
+ children: y
146
142
  }
147
143
  ) })
148
144
  ]
@@ -154,11 +150,11 @@ const ke = P((A) => {
154
150
  menuWidth: "100%",
155
151
  menuZIndex: 6,
156
152
  menuOffset: 2,
157
- menuElement: /* @__PURE__ */ e(M, { children: p ? /* @__PURE__ */ e(ae, { options: K }) : void 0 })
153
+ menuElement: /* @__PURE__ */ e(G, { children: m ? /* @__PURE__ */ e(re, { options: H }) : void 0 })
158
154
  }
159
155
  );
160
156
  });
161
157
  export {
162
- ke as default
158
+ Ie as default
163
159
  };
164
160
  //# sourceMappingURL=student-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"student-actions.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/student-actions/student-actions.tsx"],"sourcesContent":["import type { INodeCardProps } from '../node-card-types';\nimport type { INodeMenuOption } from '../node-menu-options/node-menu-options-types';\n\nimport { memo, useCallback, type FC } from 'react';\n\nimport Eye2Icon from '../../../../../assets/line-icons/icons/eye2';\nimport RedoIcon from '../../../../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport ContextMenu from '../../../../ui/context-menu/context-menu';\nimport Text from '../../../../ui/text/text';\nimport { BLOCK_TYPE } from '../../../constants/block-constants';\nimport { NODE_CARD_STATES } from '../../../constants/node-constants';\nimport { getNodeTypeBasedBgImage } from '../../../utils';\nimport { getNodeCardBasedIcon } from '../../../utils/node-card-utils';\nimport BorderPathAnimation from '../border-path-animation';\nimport * as Styled from '../node-card-styled';\nimport NodeCardTags from '../node-card-tags';\nimport NodeMenuOptions from '../node-menu-options/node-menu-options';\n\nconst StudentActions: FC<Omit<INodeCardProps, 'userType'>> = memo(props => {\n const {\n nodeData,\n imageHue,\n blockType,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n } = props;\n const {\n accuracy,\n attempt_location: attemptLocation,\n node_type: nodeType,\n card_header: cardHeader,\n title,\n state,\n is_optional: isOptional,\n sheet_statement: sheetStatement,\n permissions,\n marked_as_completed: teacherMarkedAsCompleted,\n } = nodeData;\n\n const {\n can_review: canReview,\n can_reattempt: canReattempt,\n can_start: canStart,\n can_resume: canResume,\n } = permissions;\n\n const isGoalBlock = blockType === BLOCK_TYPE.GOAL;\n const sheetLocked = state === NODE_CARD_STATES.LOCKED;\n const sheetNotStarted = state === NODE_CARD_STATES.NOT_STARTED;\n const sheetInProgress = state === NODE_CARD_STATES.IN_PROGRESS;\n const inClassSheet = attemptLocation === 'INCLASS';\n const tooltipHidden = !sheetStatement || !isGoalBlock;\n const canStartOrResume = canStart || canResume;\n\n const showCardAnimation = !isOptional && (sheetInProgress || sheetNotStarted);\n const renderOptions = !canStartOrResume && (canReattempt || canReview);\n\n const nodeBgImage = getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = getNodeCardBasedIcon(nodeType);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'node-card-review':\n onNodeReview?.(nodeData);\n\n return;\n\n case 'node-card-reattempt':\n onNodeReattempt?.(nodeData);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [nodeData, onNodeReattempt, onNodeReview],\n );\n\n const handleOnNodeCardClick = useCallback(() => {\n if (renderOptions || sheetLocked) return;\n\n if (canStart || canResume) {\n onNodeAttempt?.(nodeData);\n } else if (teacherMarkedAsCompleted) {\n onNodeView?.(nodeData);\n }\n }, [\n canResume,\n canStart,\n nodeData,\n onNodeAttempt,\n onNodeView,\n renderOptions,\n sheetLocked,\n teacherMarkedAsCompleted,\n ]);\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-review',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReattempt,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <ContextMenu\n targetElement={\n <Styled.NodeCardContainer\n $showOutline={!showCardAnimation}\n $background={`${imageHue}_2`}\n $disabled={sheetLocked}\n onClick={handleOnNodeCardClick}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem={sheetStatement}\n position=\"bottom\"\n zIndex={5}\n hidden={tooltipHidden}\n parentWidth=\"100%\"\n widthX={11.25}\n >\n <Styled.NodeCardInfoWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $heightX={3.5}\n $bgImage={nodeBgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $opacity={sheetLocked ? 0.5 : 1}\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n {!isOptional && <Styled.StyledImportantIcon />}\n </Styled.IconWrapper>\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK\">\n {cardHeader} {inClassSheet && `. CW`}\n </Text>\n\n {showCardAnimation && <BorderPathAnimation />}\n </Styled.NodeCardInfoWrapper>\n\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} />\n\n {!isGoalBlock && (\n <Styled.NodeCardContentWrapper $background=\"WHITE_1\" $heightX={4}>\n <Styled.NodeCardTitle\n $renderAs=\"ab3\"\n $color=\"BLACK_1\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n {title}\n </Styled.NodeCardTitle>\n </Styled.NodeCardContentWrapper>\n )}\n </ArrowTooltip>\n </Styled.NodeCardContainer>\n }\n startLeft\n menuWidth=\"100%\"\n menuZIndex={6}\n menuOffset={2}\n menuElement={<>{renderOptions ? <NodeMenuOptions options={menuOptions} /> : undefined}</>}\n />\n );\n});\n\nexport default StudentActions;\n"],"names":["StudentActions","memo","props","nodeData","imageHue","blockType","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeView","accuracy","attemptLocation","nodeType","cardHeader","title","state","isOptional","sheetStatement","permissions","teacherMarkedAsCompleted","canReview","canReattempt","canStart","canResume","isGoalBlock","BLOCK_TYPE","sheetLocked","NODE_CARD_STATES","sheetNotStarted","sheetInProgress","inClassSheet","tooltipHidden","canStartOrResume","showCardAnimation","renderOptions","nodeBgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","handleOnMenuOptionClick","useCallback","optionId","handleOnNodeCardClick","menuOptions","Eye2Icon","RedoIcon","jsx","ContextMenu","Styled.NodeCardContainer","jsxs","ArrowTooltip","Styled.NodeCardInfoWrapper","Styled.IconWrapper","Styled.StyledImportantIcon","Text","BorderPathAnimation","NodeCardTags","Styled.NodeCardContentWrapper","Styled.NodeCardTitle","NodeMenuOptions"],"mappings":"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"}
1
+ {"version":3,"file":"student-actions.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/student-actions/student-actions.tsx"],"sourcesContent":["import type { INodeCardProps } from '../node-card-types';\nimport type { INodeMenuOption } from '../node-menu-options/node-menu-options-types';\n\nimport { memo, useCallback, type FC } from 'react';\n\nimport Eye2Icon from '../../../../../assets/line-icons/icons/eye2';\nimport RedoIcon from '../../../../../assets/line-icons/icons/redo';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport ContextMenu from '../../../../ui/context-menu/context-menu';\nimport Text from '../../../../ui/text/text';\nimport { BLOCK_TYPE } from '../../../constants/block-constants';\nimport { NODE_CARD_STATES } from '../../../constants/node-constants';\nimport { getNodeTypeBasedBgImage } from '../../../utils';\nimport { getNodeCardBasedIcon } from '../../../utils/node-card-utils';\nimport BorderPathAnimation from '../border-path-animation';\nimport * as Styled from '../node-card-styled';\nimport NodeCardTags from '../node-card-tags';\nimport NodeMenuOptions from '../node-menu-options/node-menu-options';\n\nconst StudentActions: FC<Omit<INodeCardProps, 'userType'>> = memo(props => {\n const {\n nodeData,\n imageHue,\n blockType,\n onNodeAttempt,\n onNodeReattempt,\n onNodeReview,\n onNodeView,\n } = props;\n const {\n accuracy,\n attempt_location: attemptLocation,\n node_type: nodeType,\n card_header: cardHeader,\n title,\n state,\n is_optional: isOptional,\n sheet_statement: sheetStatement,\n permissions,\n } = nodeData;\n\n const {\n can_review: canReview,\n can_reattempt: canReattempt,\n can_start: canStart,\n can_resume: canResume,\n } = permissions;\n\n const isGoalBlock = blockType === BLOCK_TYPE.GOAL;\n const sheetLocked = state === NODE_CARD_STATES.LOCKED;\n const sheetNotStarted = state === NODE_CARD_STATES.NOT_STARTED;\n const sheetInProgress = state === NODE_CARD_STATES.IN_PROGRESS;\n const inClassSheet = attemptLocation === 'INCLASS';\n const tooltipHidden = !sheetStatement || !isGoalBlock;\n\n const showCardAnimation = !isOptional && (sheetInProgress || sheetNotStarted);\n const renderOptions = canReattempt || canReview;\n\n const nodeBgImage = getNodeTypeBasedBgImage(nodeType);\n const NodeCardIcon = getNodeCardBasedIcon(nodeType);\n\n const handleOnMenuOptionClick = useCallback(\n (optionId: string) => {\n switch (optionId) {\n case 'node-card-review':\n onNodeReview?.(nodeData);\n\n return;\n\n case 'node-card-reattempt':\n onNodeReattempt?.(nodeData);\n\n return;\n\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [nodeData, onNodeReattempt, onNodeReview],\n );\n\n const handleOnNodeCardClick = useCallback(() => {\n if (renderOptions || sheetLocked) return;\n\n if (canStart || canResume) {\n onNodeAttempt?.(nodeData);\n\n return;\n }\n\n onNodeView?.(nodeData);\n }, [canResume, canStart, nodeData, onNodeAttempt, onNodeView, renderOptions, sheetLocked]);\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-review',\n label: 'Review',\n icon: Eye2Icon,\n disabled: !canReview,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-reattempt',\n label: 'Reattempt',\n icon: RedoIcon,\n disabled: !canReattempt,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <ContextMenu\n targetElement={\n <Styled.NodeCardContainer\n $showOutline={!showCardAnimation}\n $background={`${imageHue}_2`}\n $disabled={sheetLocked}\n onClick={handleOnNodeCardClick}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem={sheetStatement}\n position=\"bottom\"\n zIndex={5}\n hidden={tooltipHidden}\n parentWidth=\"100%\"\n widthX={11.25}\n >\n <Styled.NodeCardInfoWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $heightX={3.5}\n $bgImage={nodeBgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n $opacity={sheetLocked ? 0.5 : 1}\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n {!isOptional && <Styled.StyledImportantIcon />}\n </Styled.IconWrapper>\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK\">\n {cardHeader} {inClassSheet && `. CW`}\n </Text>\n\n {showCardAnimation && <BorderPathAnimation />}\n </Styled.NodeCardInfoWrapper>\n\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} />\n\n {!isGoalBlock && (\n <Styled.NodeCardContentWrapper $background=\"WHITE_1\" $heightX={4}>\n <Styled.NodeCardTitle\n $renderAs=\"ab3\"\n $color=\"BLACK_1\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n {title}\n </Styled.NodeCardTitle>\n </Styled.NodeCardContentWrapper>\n )}\n </ArrowTooltip>\n </Styled.NodeCardContainer>\n }\n startLeft\n menuWidth=\"100%\"\n menuZIndex={6}\n menuOffset={2}\n menuElement={<>{renderOptions ? <NodeMenuOptions options={menuOptions} /> : undefined}</>}\n />\n );\n});\n\nexport default StudentActions;\n"],"names":["StudentActions","memo","props","nodeData","imageHue","blockType","onNodeAttempt","onNodeReattempt","onNodeReview","onNodeView","accuracy","attemptLocation","nodeType","cardHeader","title","state","isOptional","sheetStatement","permissions","canReview","canReattempt","canStart","canResume","isGoalBlock","BLOCK_TYPE","sheetLocked","NODE_CARD_STATES","sheetNotStarted","sheetInProgress","inClassSheet","tooltipHidden","showCardAnimation","renderOptions","nodeBgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","handleOnMenuOptionClick","useCallback","optionId","handleOnNodeCardClick","menuOptions","Eye2Icon","RedoIcon","jsx","ContextMenu","Styled.NodeCardContainer","jsxs","ArrowTooltip","Styled.NodeCardInfoWrapper","Styled.IconWrapper","Styled.StyledImportantIcon","Text","BorderPathAnimation","NodeCardTags","Styled.NodeCardContentWrapper","Styled.NodeCardTitle","NodeMenuOptions"],"mappings":";;;;;;;;;;;;;;;AAmBM,MAAAA,KAAuDC,EAAK,CAASC,MAAA;AACnE,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,EACE,IAAAP,GACE;AAAA,IACJ,UAAAQ;AAAA,IACA,kBAAkBC;AAAA,IAClB,WAAWC;AAAA,IACX,aAAaC;AAAA,IACb,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAaC;AAAA,IACb,iBAAiBC;AAAA,IACjB,aAAAC;AAAA,EACE,IAAAf,GAEE;AAAA,IACJ,YAAYgB;AAAA,IACZ,eAAeC;AAAA,IACf,WAAWC;AAAA,IACX,YAAYC;AAAA,EACV,IAAAJ,GAEEK,IAAclB,MAAcmB,EAAW,MACvCC,IAAcV,MAAUW,EAAiB,QACzCC,IAAkBZ,MAAUW,EAAiB,aAC7CE,IAAkBb,MAAUW,EAAiB,aAC7CG,IAAelB,MAAoB,WACnCmB,IAAgB,CAACb,KAAkB,CAACM,GAEpCQ,IAAoB,CAACf,MAAeY,KAAmBD,IACvDK,IAAgBZ,KAAgBD,GAEhCc,IAAcC,EAAwBtB,CAAQ,GAC9CuB,IAAeC,EAAqBxB,CAAQ,GAE5CyB,IAA0BC;AAAA,IAC9B,CAACC,MAAqB;AACpB,cAAQA,GAAU;AAAA,QAChB,KAAK;AACH,UAAA/B,KAAA,QAAAA,EAAeL;AAEf;AAAA,QAEF,KAAK;AACH,UAAAI,KAAA,QAAAA,EAAkBJ;AAElB;AAAA,QAEF;AACE,gBAAM,IAAI,MAAM,4BAA4BoC,CAAQ,EAAE;AAAA,MAC1D;AAAA,IACF;AAAA,IACA,CAACpC,GAAUI,GAAiBC,CAAY;AAAA,EAAA,GAGpCgC,IAAwBF,EAAY,MAAM;AAC9C,QAAI,EAAAN,KAAiBP,IAErB;AAAA,UAAIJ,KAAYC,GAAW;AACzB,QAAAhB,KAAA,QAAAA,EAAgBH;AAEhB;AAAA,MACF;AAEA,MAAAM,KAAA,QAAAA,EAAaN;AAAA;AAAA,EAAQ,GACpB,CAACmB,GAAWD,GAAUlB,GAAUG,GAAeG,GAAYuB,GAAeP,CAAW,CAAC,GAEnFgB,IAAiC;AAAA,IACrC;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMC;AAAA,MACN,UAAU,CAACvB;AAAA,MACX,SAASkB;AAAA,IACX;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,MAAMM;AAAA,MACN,UAAU,CAACvB;AAAA,MACX,SAASiB;AAAA,IACX;AAAA,EAAA;AAIA,SAAA,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,eACE,gBAAAD;AAAA,QAACE;AAAAA,QAAA;AAAA,UACC,cAAc,CAACf;AAAA,UACf,aAAa,GAAG3B,CAAQ;AAAA,UACxB,WAAWqB;AAAA,UACX,SAASe;AAAA,UAET,UAAA,gBAAAO;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,aAAa/B;AAAA,cACb,UAAS;AAAA,cACT,QAAQ;AAAA,cACR,QAAQa;AAAA,cACR,aAAY;AAAA,cACZ,QAAQ;AAAA,cAER,UAAA;AAAA,gBAAA,gBAAAiB;AAAA,kBAACE;AAAAA,kBAAA;AAAA,oBACC,gBAAe;AAAA,oBACf,aAAY;AAAA,oBACZ,UAAU;AAAA,oBACV,UAAUhB;AAAA,oBACV,UAAU;AAAA,oBACV,UAAU;AAAA,oBACV,UAAUR,IAAc,MAAM;AAAA,oBAE9B,UAAA;AAAA,sBAAA,gBAAAsB;AAAA,wBAACG;AAAAA,wBAAA;AAAA,0BACC,QAAQ;AAAA,0BACR,SAAS;AAAA,0BACT,aAAY;AAAA,0BACZ,WAAU;AAAA,0BACV,aAAY;AAAA,0BACZ,iBAAgB;AAAA,0BAEf,UAAA;AAAA,4BAAAf,KAAiB,gBAAAS,EAAAT,GAAA,EAAa,OAAO,IAAI,QAAQ,IAAI;AAAA,4BACrD,CAACnB,KAAe,gBAAA4B,EAAAO,GAAA,EAA2B;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBAC9C;AAAA,sBAEC,gBAAAJ,EAAAK,GAAA,EAAK,WAAU,aAAY,QAAO,SAChC,UAAA;AAAA,wBAAAvC;AAAA,wBAAW;AAAA,wBAAEgB,KAAgB;AAAA,sBAAA,GAChC;AAAA,sBAECE,uBAAsBsB,GAAoB,EAAA;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAC7C;AAAA,gBAEC,gBAAAT,EAAAU,IAAA,EAAa,UAAA1C,GAAoB,OAAAG,GAAc,UAAAL,EAAoB,CAAA;AAAA,gBAEnE,CAACa,KACC,gBAAAqB,EAAAW,IAAA,EAA8B,aAAY,WAAU,UAAU,GAC7D,UAAA,gBAAAX;AAAA,kBAACY;AAAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,QAAO;AAAA,oBACP,UAAU/B,IAAc,MAAM;AAAA,oBAE7B,UAAAX;AAAA,kBAAA;AAAA,gBAAA,GAEL;AAAA,cAAA;AAAA,YAAA;AAAA,UAEJ;AAAA,QAAA;AAAA,MACF;AAAA,MAEF,WAAS;AAAA,MACT,WAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,oCAAgB,UAAgBkB,IAAA,gBAAAY,EAACa,MAAgB,SAAShB,EAAa,CAAA,IAAK,OAAU,CAAA;AAAA,IAAA;AAAA,EAAA;AAG5F,CAAC;"}
@@ -1,8 +1,8 @@
1
1
  import { ILLUSTRATIONS as e } from "../../../assets/illustrations/illustrations.js";
2
2
  const _ = (t) => {
3
3
  if (!t) return 0;
4
- const { mandatory: E } = t, { completed: c, total: r } = E;
5
- return Math.floor(c / r * 100);
4
+ const { mandatory: E } = t, { completed: n, total: r } = E;
5
+ return Math.floor(n / r * 100);
6
6
  }, o = (t) => {
7
7
  switch (t) {
8
8
  case "LEARNING":
@@ -15,7 +15,6 @@ const _ = (t) => {
15
15
  case "PRACTICE":
16
16
  case "EXTRA_PRACTICE":
17
17
  case "TARGET_PRACTICE":
18
- case "MASTERY":
19
18
  return e.NODE_PRACTICE_BG;
20
19
  case "PUZZLE_EASY":
21
20
  case "PUZZLE_MEDIUM":
@@ -26,9 +25,9 @@ const _ = (t) => {
26
25
  default:
27
26
  return e.NODE_CUSTOM_TEST_BG;
28
27
  }
29
- }, T = (t, E, c, r) => {
28
+ }, T = (t, E, n, r) => {
30
29
  if (!t) {
31
- if (!c) return `(${E})`;
30
+ if (!n) return `(${E})`;
32
31
  if (r !== void 0 && r > 0)
33
32
  return `${r}`;
34
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/features/chapters-v2/utils/index.ts"],"sourcesContent":["import type { IChapterProgressStats } from '../chapter-details/chapter-details-types';\nimport type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\n\n// This function calculates the completion percentage of a chapter based on progress stats.\n// If no progress stats are provided, it returns 0.\n// It uses the `mandatory` field from the progress stats to determine the completed and total items.\n// It returns an integer representing the percentage of completion, rounded down to the nearest whole number.\nconst getChapterCompletionPercentage = (progressStats: IChapterProgressStats | null) => {\n if (!progressStats) return 0;\n\n const { mandatory } = progressStats;\n const { completed, total } = mandatory;\n\n const percentage = Math.floor((completed / total) * 100);\n\n return percentage;\n};\n\nconst getNodeTypeBasedBgImage = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n return ILLUSTRATIONS.NODE_LEARN_BG;\n case 'RECAP':\n return ILLUSTRATIONS.NODE_RECAP_BG;\n\n case 'ASSESSMENT':\n case 'DYNAMIC':\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n return ILLUSTRATIONS.NODE_PRACTICE_BG;\n\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return ILLUSTRATIONS.NODE_PUZZLE_BG;\n\n case 'VIDEO':\n return ILLUSTRATIONS.NODE_VIDEO_BG;\n\n default:\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n }\n};\n\nconst getSheetNLessonCount = (\n isSkipped: boolean,\n sheetsLength: number,\n isGoalBlock?: boolean,\n lessonIdx?: number,\n) => {\n if (isSkipped) return undefined;\n\n if (!isGoalBlock) return `(${sheetsLength})`;\n\n if (lessonIdx !== undefined && lessonIdx > 0) {\n return `${lessonIdx}`;\n }\n};\n\nexport { getChapterCompletionPercentage, getNodeTypeBasedBgImage, getSheetNLessonCount };\n"],"names":["getChapterCompletionPercentage","progressStats","mandatory","completed","total","getNodeTypeBasedBgImage","nodeType","ILLUSTRATIONS","getSheetNLessonCount","isSkipped","sheetsLength","isGoalBlock","lessonIdx"],"mappings":";AASM,MAAAA,IAAiC,CAACC,MAAgD;AAClF,MAAA,CAACA,EAAsB,QAAA;AAErB,QAAA,EAAE,WAAAC,EAAc,IAAAD,GAChB,EAAE,WAAAE,GAAW,OAAAC,EAAU,IAAAF;AAItB,SAFY,KAAK,MAAOC,IAAYC,IAAS,GAAG;AAGzD,GAEMC,IAA0B,CAACC,MAA0C;AACzE,UAAQA,GAAU;AAAA,IAChB,KAAK;AACH,aAAOC,EAAc;AAAA,IACvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB;AACE,aAAOA,EAAc;AAAA,EACzB;AACF,GAEMC,IAAuB,CAC3BC,GACAC,GACAC,GACAC,MACG;AACH,MAAI,CAAAH,GAEJ;AAAA,QAAI,CAACE,EAAoB,QAAA,IAAID,CAAY;AAErC,QAAAE,MAAc,UAAaA,IAAY;AACzC,aAAO,GAAGA,CAAS;AAAA;AAEvB;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/features/chapters-v2/utils/index.ts"],"sourcesContent":["import type { IChapterProgressStats } from '../chapter-details/chapter-details-types';\nimport type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\n\n// This function calculates the completion percentage of a chapter based on progress stats.\n// If no progress stats are provided, it returns 0.\n// It uses the `mandatory` field from the progress stats to determine the completed and total items.\n// It returns an integer representing the percentage of completion, rounded down to the nearest whole number.\nconst getChapterCompletionPercentage = (progressStats: IChapterProgressStats | null) => {\n if (!progressStats) return 0;\n\n const { mandatory } = progressStats;\n const { completed, total } = mandatory;\n\n const percentage = Math.floor((completed / total) * 100);\n\n return percentage;\n};\n\nconst getNodeTypeBasedBgImage = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n return ILLUSTRATIONS.NODE_LEARN_BG;\n case 'RECAP':\n return ILLUSTRATIONS.NODE_RECAP_BG;\n\n case 'ASSESSMENT':\n case 'DYNAMIC':\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n return ILLUSTRATIONS.NODE_PRACTICE_BG;\n\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return ILLUSTRATIONS.NODE_PUZZLE_BG;\n\n case 'VIDEO':\n return ILLUSTRATIONS.NODE_VIDEO_BG;\n\n default:\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n }\n};\n\nconst getSheetNLessonCount = (\n isSkipped: boolean,\n sheetsLength: number,\n isGoalBlock?: boolean,\n lessonIdx?: number,\n) => {\n if (isSkipped) return undefined;\n\n if (!isGoalBlock) return `(${sheetsLength})`;\n\n if (lessonIdx !== undefined && lessonIdx > 0) {\n return `${lessonIdx}`;\n }\n};\n\nexport { getChapterCompletionPercentage, getNodeTypeBasedBgImage, getSheetNLessonCount };\n"],"names":["getChapterCompletionPercentage","progressStats","mandatory","completed","total","getNodeTypeBasedBgImage","nodeType","ILLUSTRATIONS","getSheetNLessonCount","isSkipped","sheetsLength","isGoalBlock","lessonIdx"],"mappings":";AASM,MAAAA,IAAiC,CAACC,MAAgD;AAClF,MAAA,CAACA,EAAsB,QAAA;AAErB,QAAA,EAAE,WAAAC,EAAc,IAAAD,GAChB,EAAE,WAAAE,GAAW,OAAAC,EAAU,IAAAF;AAItB,SAFY,KAAK,MAAOC,IAAYC,IAAS,GAAG;AAGzD,GAEMC,IAA0B,CAACC,MAA0C;AACzE,UAAQA,GAAU;AAAA,IAChB,KAAK;AACH,aAAOC,EAAc;AAAA,IACvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB;AACE,aAAOA,EAAc;AAAA,EACzB;AACF,GAEMC,IAAuB,CAC3BC,GACAC,GACAC,GACAC,MACG;AACH,MAAI,CAAAH,GAEJ;AAAA,QAAI,CAACE,EAAoB,QAAA,IAAID,CAAY;AAErC,QAAAE,MAAc,UAAaA,IAAY;AACzC,aAAO,GAAGA,CAAS;AAAA;AAEvB;"}
@@ -1,63 +1,36 @@
1
- import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
- import E from "../../../assets/line-icons/icons/alarm.js";
3
- import I from "../../../assets/line-icons/icons/bulb2.js";
4
- import u from "../../../assets/line-icons/icons/check2.js";
5
- import f from "../../../assets/line-icons/icons/dart.js";
6
- import d from "../../../assets/line-icons/icons/exclamation.js";
7
- import p from "../../../assets/line-icons/icons/lock2.js";
8
- import l from "../../../assets/line-icons/icons/play2.js";
9
- import T from "../../../assets/line-icons/icons/puzzle.js";
10
- import R from "../../../assets/line-icons/icons/recap.js";
11
- import A from "../../../assets/line-icons/icons/status.js";
12
- import D from "../../../assets/line-icons/icons/testtube.js";
13
- import h from "../../ui/layout/flex-view.js";
14
- import s from "../../ui/text/text.js";
15
- import { InProgressIconWrapper as S } from "../comps/node-card/node-card-styled.js";
16
- import i from "../comps/tag/tag.js";
17
- const g = 60 * 60 * 24, $ = ["NOT_STARTED", "IN_PROGRESS"], C = (r) => {
18
- if (!r)
19
- return { isOverdue: !1, daysText: "" };
20
- const c = Math.floor(Date.now() / 1e3), n = r - c, o = Math.ceil(n / g), t = o < 0, a = o > 0 ? `${Math.abs(o)}D` : "";
21
- return { isOverdue: t, daysText: a };
22
- }, W = (r, c, n) => {
23
- const { isOverdue: o, daysText: t } = C(n);
24
- if (o && $.includes(r))
25
- return {
26
- icon: /* @__PURE__ */ e(h, { $background: "RED", $borderRadius: 16, $gapX: 0.24, $gutterX: 0.5, children: /* @__PURE__ */ e(s, { $renderAs: "ac4-black", $color: "WHITE", children: "OVERDUE" }) }),
27
- top: -10,
28
- right: -10
29
- };
30
- switch (r) {
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import c from "../../../assets/line-icons/icons/alarm.js";
3
+ import n from "../../../assets/line-icons/icons/bulb2.js";
4
+ import m from "../../../assets/line-icons/icons/check2.js";
5
+ import a from "../../../assets/line-icons/icons/dart.js";
6
+ import i from "../../../assets/line-icons/icons/exclamation.js";
7
+ import I from "../../../assets/line-icons/icons/lock2.js";
8
+ import s from "../../../assets/line-icons/icons/play2.js";
9
+ import p from "../../../assets/line-icons/icons/puzzle.js";
10
+ import E from "../../../assets/line-icons/icons/recap.js";
11
+ import f from "../../../assets/line-icons/icons/status.js";
12
+ import u from "../../../assets/line-icons/icons/testtube.js";
13
+ import { InProgressIconWrapper as A } from "../comps/node-card/node-card-styled.js";
14
+ import e from "../comps/tag/tag.js";
15
+ const M = (o, t) => {
16
+ switch (o) {
31
17
  case "LOCKED":
32
18
  return {
33
- icon: /* @__PURE__ */ e(p, { width: 32, height: 32 }),
19
+ icon: /* @__PURE__ */ r(I, { width: 32, height: 32 }),
34
20
  top: -12,
35
21
  right: -12
36
22
  };
37
23
  case "IN_PROGRESS":
38
24
  return {
39
- icon: /* @__PURE__ */ m(
40
- S,
41
- {
42
- $flexDirection: "row",
43
- $alignItems: "center",
44
- $justifyContent: "center",
45
- $gutterX: t ? 0.5 : 0,
46
- $borderRadius: 16,
47
- children: [
48
- t && /* @__PURE__ */ e(s, { $renderAs: "ac4-black", $color: "WHITE", children: t }),
49
- /* @__PURE__ */ e(A, {})
50
- ]
51
- }
52
- )
25
+ icon: /* @__PURE__ */ r(A, { children: /* @__PURE__ */ r(f, {}) })
53
26
  };
54
27
  case "COMPLETED":
55
28
  return {
56
- icon: /* @__PURE__ */ e(
57
- i,
29
+ icon: /* @__PURE__ */ r(
30
+ e,
58
31
  {
59
- Icon: u,
60
- label: typeof c == "number" ? `${c}%` : void 0
32
+ Icon: m,
33
+ label: typeof t == "number" ? `${t}%` : void 0
61
34
  }
62
35
  ),
63
36
  top: -10,
@@ -65,7 +38,7 @@ const g = 60 * 60 * 24, $ = ["NOT_STARTED", "IN_PROGRESS"], C = (r) => {
65
38
  };
66
39
  case "WAIT_FOR_REVIEW":
67
40
  return {
68
- icon: /* @__PURE__ */ e(i, { Icon: d }),
41
+ icon: /* @__PURE__ */ r(e, { Icon: i }),
69
42
  //<AlertIcon width={32} height={32} fill="white" />,
70
43
  top: -10,
71
44
  right: -10
@@ -75,32 +48,31 @@ const g = 60 * 60 * 24, $ = ["NOT_STARTED", "IN_PROGRESS"], C = (r) => {
75
48
  icon: void 0
76
49
  };
77
50
  }
78
- }, X = (r) => {
79
- switch (r) {
51
+ }, O = (o) => {
52
+ switch (o) {
80
53
  case "LEARNING":
81
- return I;
54
+ return n;
82
55
  case "RECAP":
83
- return R;
56
+ return E;
84
57
  case "DYNAMIC":
85
58
  case "ASSESSMENT":
86
- return E;
59
+ return c;
87
60
  case "PRACTICE":
88
61
  case "EXTRA_PRACTICE":
89
62
  case "TARGET_PRACTICE":
90
- case "MASTERY":
91
- return f;
63
+ return a;
92
64
  case "PUZZLE_EASY":
93
65
  case "PUZZLE_MEDIUM":
94
66
  case "PUZZLE_HARD":
95
- return T;
67
+ return p;
96
68
  case "VIDEO":
97
- return l;
69
+ return s;
98
70
  default:
99
- return D;
71
+ return u;
100
72
  }
101
73
  };
102
74
  export {
103
- X as getNodeCardBasedIcon,
104
- W as getNodeStateBasedTagInfo
75
+ O as getNodeCardBasedIcon,
76
+ M as getNodeStateBasedTagInfo
105
77
  };
106
78
  //# sourceMappingURL=node-card-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport AlarmIcon from '../../../assets/line-icons/icons/alarm';\nimport Bulb2Icon from '../../../assets/line-icons/icons/bulb2';\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport DartIcon from '../../../assets/line-icons/icons/dart';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport Play2Icon from '../../../assets/line-icons/icons/play2';\nimport PuzzleIcon from '../../../assets/line-icons/icons/puzzle';\nimport RecapIcon from '../../../assets/line-icons/icons/recap';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport TestTubeIcon from '../../../assets/line-icons/icons/testtube';\nimport FlexView from '../..//ui/layout/flex-view';\nimport Text from '../../ui/text/text';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport Tag from '../comps/tag/tag';\n\ninterface DueDateInfo {\n isOverdue: boolean;\n daysText: string;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED', 'IN_PROGRESS'];\n\nconst calculateDueDateInfo = (dueDateTs?: number | null): DueDateInfo => {\n if (!dueDateTs) {\n return { isOverdue: false, daysText: '' };\n }\n\n const currentTimestamp = Math.floor(Date.now() / 1000);\n const differenceInSeconds = dueDateTs - currentTimestamp;\n const differenceInDays = Math.ceil(differenceInSeconds / SECONDS_PER_DAY);\n\n const isOverdue = differenceInDays < 0;\n\n const daysText = differenceInDays > 0 ? `${Math.abs(differenceInDays)}D` : '';\n\n return { isOverdue, daysText };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n accuracy?: number | null,\n dueDateTs?: number | null,\n) => {\n const { isOverdue, daysText } = calculateDueDateInfo(dueDateTs);\n\n if (isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <FlexView $background=\"RED\" $borderRadius={16} $gapX={0.24} $gutterX={0.5}>\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n OVERDUE\n </Text>\n </FlexView>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -12,\n right: -12,\n };\n case 'IN_PROGRESS':\n return {\n icon: (\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $gutterX={daysText ? 0.5 : 0}\n $borderRadius={16}\n >\n {daysText && (\n <Text $renderAs=\"ac4-black\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n <StatusIcon />\n </InProgressIconWrapper>\n ),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: <Tag Icon={ExclamationIcon} />, //<AlertIcon width={32} height={32} fill=\"white\" />,\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n return Bulb2Icon;\n case 'RECAP':\n return RecapIcon;\n case 'DYNAMIC':\n case 'ASSESSMENT':\n return AlarmIcon;\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n return DartIcon;\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return PuzzleIcon;\n case 'VIDEO':\n return Play2Icon;\n\n default:\n return TestTubeIcon;\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","accuracy","jsx","FlexView","Text","Lock2Icon","jsxs","InProgressIconWrapper","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","Bulb2Icon","RecapIcon","AlarmIcon","DartIcon","PuzzleIcon","Play2Icon","TestTubeIcon"],"mappings":";;;;;;;;;;;;;;;;AAuBA,MAAMA,IAAkB,KAAK,KAAK,IAC5BC,IAAgD,CAAC,eAAe,aAAa,GAE7EC,IAAuB,CAACC,MAA2C;AACvE,MAAI,CAACA;AACH,WAAO,EAAE,WAAW,IAAO,UAAU,GAAG;AAG1C,QAAMC,IAAmB,KAAK,MAAM,KAAK,IAAA,IAAQ,GAAI,GAC/CC,IAAsBF,IAAYC,GAClCE,IAAmB,KAAK,KAAKD,IAAsBL,CAAe,GAElEO,IAAYD,IAAmB,GAE/BE,IAAWF,IAAmB,IAAI,GAAG,KAAK,IAAIA,CAAgB,CAAC,MAAM;AAEpE,SAAA,EAAE,WAAAC,GAAW,UAAAC;AACtB,GAEMC,IAA2B,CAC/BC,GACAC,GACAR,MACG;AACH,QAAM,EAAE,WAAAI,GAAW,UAAAC,EAAS,IAAIN,EAAqBC,CAAS;AAE9D,MAAII,KAAaN,EAAmB,SAASS,CAAS;AAC7C,WAAA;AAAA,MACL,MACG,gBAAAE,EAAAC,GAAA,EAAS,aAAY,OAAM,eAAe,IAAI,OAAO,MAAM,UAAU,KACpE,4BAACC,GAAK,EAAA,WAAU,aAAY,QAAO,SAAQ,oBAE3C,CAAA,GACF;AAAA,MAEF,KAAK;AAAA,MACL,OAAO;AAAA,IAAA;AAIX,UAAQJ,GAAW;AAAA,IACjB,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAE,EAAAG,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI;AAAA,QACxC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,gBAAe;AAAA,YACf,aAAY;AAAA,YACZ,iBAAgB;AAAA,YAChB,UAAUT,IAAW,MAAM;AAAA,YAC3B,eAAe;AAAA,YAEd,UAAA;AAAA,cAAAA,uBACEM,GAAK,EAAA,WAAU,aAAY,QAAO,SAChC,UACHN,GAAA;AAAA,gCAEDU,GAAW,EAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,IAGN,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAN;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,MAAMC;AAAA,YACN,OAAO,OAAOT,KAAa,WAAW,GAAGA,CAAQ,MAAM;AAAA,UAAA;AAAA,QACzD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAM,gBAAAC,EAACO,GAAI,EAAA,MAAME,EAAiB,CAAA;AAAA;AAAA,QAClC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX;AACS,aAAA;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,EAEZ;AACF,GAEMC,IAAuB,CAACC,MAA0C;AACtE,UAAQA,GAAU;AAAA,IAChB,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AACI,aAAAC;AAAA,IAET;AACS,aAAAC;AAAA,EACX;AACF;"}
1
+ {"version":3,"file":"node-card-utils.js","sources":["../../../../src/features/chapters-v2/utils/node-card-utils.tsx"],"sourcesContent":["import type { INodeDataProps } from '../comps/node-card/node-card-types';\n\nimport AlarmIcon from '../../../assets/line-icons/icons/alarm';\nimport Bulb2Icon from '../../../assets/line-icons/icons/bulb2';\nimport Check2Icon from '../../../assets/line-icons/icons/check2';\nimport DartIcon from '../../../assets/line-icons/icons/dart';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport Play2Icon from '../../../assets/line-icons/icons/play2';\nimport PuzzleIcon from '../../../assets/line-icons/icons/puzzle';\nimport RecapIcon from '../../../assets/line-icons/icons/recap';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport TestTubeIcon from '../../../assets/line-icons/icons/testtube';\nimport { InProgressIconWrapper } from '../comps/node-card/node-card-styled';\nimport Tag from '../comps/tag/tag';\n\nconst getNodeStateBasedTagInfo = (nodeState: INodeDataProps['state'], accuracy?: number | null) => {\n switch (nodeState) {\n case 'LOCKED':\n return {\n icon: <Lock2Icon width={32} height={32} />,\n top: -12,\n right: -12,\n };\n case 'IN_PROGRESS':\n return {\n icon: (\n <InProgressIconWrapper>\n <StatusIcon />\n </InProgressIconWrapper>\n ),\n };\n case 'COMPLETED':\n return {\n icon: (\n <Tag\n Icon={Check2Icon}\n label={typeof accuracy === 'number' ? `${accuracy}%` : undefined}\n />\n ),\n top: -10,\n right: -10,\n };\n case 'WAIT_FOR_REVIEW':\n return {\n icon: <Tag Icon={ExclamationIcon} />, //<AlertIcon width={32} height={32} fill=\"white\" />,\n top: -10,\n right: -10,\n };\n\n default:\n return {\n icon: undefined,\n };\n }\n};\n\nconst getNodeCardBasedIcon = (nodeType: INodeDataProps['node_type']) => {\n switch (nodeType) {\n case 'LEARNING':\n return Bulb2Icon;\n case 'RECAP':\n return RecapIcon;\n case 'DYNAMIC':\n case 'ASSESSMENT':\n return AlarmIcon;\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n return DartIcon;\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return PuzzleIcon;\n case 'VIDEO':\n return Play2Icon;\n\n default:\n return TestTubeIcon;\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["getNodeStateBasedTagInfo","nodeState","accuracy","jsx","Lock2Icon","InProgressIconWrapper","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","Bulb2Icon","RecapIcon","AlarmIcon","DartIcon","PuzzleIcon","Play2Icon","TestTubeIcon"],"mappings":";;;;;;;;;;;;;;AAgBM,MAAAA,IAA2B,CAACC,GAAoCC,MAA6B;AACjG,UAAQD,GAAW;AAAA,IACjB,KAAK;AACI,aAAA;AAAA,QACL,MAAO,gBAAAE,EAAAC,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI;AAAA,QACxC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAD,EAACE,GACC,EAAA,UAAA,gBAAAF,EAACG,IAAW,CAAA,GACd;AAAA,MAAA;AAAA,IAGN,KAAK;AACI,aAAA;AAAA,QACL,MACE,gBAAAH;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAMC;AAAA,YACN,OAAO,OAAON,KAAa,WAAW,GAAGA,CAAQ,MAAM;AAAA,UAAA;AAAA,QACzD;AAAA,QAEF,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAEX,KAAK;AACI,aAAA;AAAA,QACL,MAAM,gBAAAC,EAACI,GAAI,EAAA,MAAME,EAAiB,CAAA;AAAA;AAAA,QAClC,KAAK;AAAA,QACL,OAAO;AAAA,MAAA;AAAA,IAGX;AACS,aAAA;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,EAEZ;AACF,GAEMC,IAAuB,CAACC,MAA0C;AACtE,UAAQA,GAAU;AAAA,IAChB,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAAC;AAAA,IACT,KAAK;AACI,aAAAC;AAAA,IAET;AACS,aAAAC;AAAA,EACX;AACF;"}