@cuemath/leap 2.8.55 → 2.8.56-as1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/illustrations/illustrations.js +9 -0
- package/dist/assets/illustrations/illustrations.js.map +1 -1
- package/dist/assets/line-icons/icons/alarm.js +41 -0
- package/dist/assets/line-icons/icons/alarm.js.map +1 -0
- package/dist/assets/line-icons/icons/dart.js +23 -0
- package/dist/assets/line-icons/icons/dart.js.map +1 -0
- package/dist/assets/line-icons/icons/exclamation.js +26 -0
- package/dist/assets/line-icons/icons/exclamation.js.map +1 -0
- package/dist/assets/line-icons/icons/home2.js +25 -0
- package/dist/assets/line-icons/icons/home2.js.map +1 -0
- package/dist/assets/line-icons/icons/important.js +23 -0
- package/dist/assets/line-icons/icons/important.js.map +1 -0
- package/dist/assets/line-icons/icons/puzzle.js +25 -0
- package/dist/assets/line-icons/icons/puzzle.js.map +1 -0
- package/dist/assets/line-icons/icons/recap.js +32 -0
- package/dist/assets/line-icons/icons/recap.js.map +1 -0
- package/dist/assets/line-icons/icons/status.js +41 -0
- package/dist/assets/line-icons/icons/status.js.map +1 -0
- package/dist/assets/line-icons/icons/testtube.js +33 -0
- package/dist/assets/line-icons/icons/testtube.js.map +1 -0
- package/dist/features/analytics-events/whitelist-events.js +7 -9
- package/dist/features/analytics-events/whitelist-events.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js +98 -33
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item-styled.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js +76 -47
- package/dist/features/chapters/chapters-list/chapter-item/chapter-item.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list-styled.js +5 -5
- package/dist/features/chapters/chapters-list/chapters-list-styled.js.map +1 -1
- package/dist/features/chapters/chapters-list/chapters-list.js +65 -70
- package/dist/features/chapters/chapters-list/chapters-list.js.map +1 -1
- package/dist/features/chapters-v2/api/chapter.js +10 -0
- package/dist/features/chapters-v2/api/chapter.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +112 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js +26 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +69 -0
- package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js +90 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +97 -0
- package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js +52 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js.map +1 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details.js +103 -0
- package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/border-path-animation.js +13 -0
- package/dist/features/chapters-v2/comps/node-card/border-path-animation.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +153 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +16 -0
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-card.js +12 -0
- package/dist/features/chapters-v2/comps/node-card/node-card.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js +32 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +31 -0
- package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +160 -0
- package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -0
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +184 -0
- package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -0
- package/dist/features/chapters-v2/comps/tag/tag-styled.js +13 -0
- package/dist/features/chapters-v2/comps/tag/tag-styled.js.map +1 -0
- package/dist/features/chapters-v2/comps/tag/tag.js +28 -0
- package/dist/features/chapters-v2/comps/tag/tag.js.map +1 -0
- package/dist/features/chapters-v2/constants/block-constants.js +20 -0
- package/dist/features/chapters-v2/constants/block-constants.js.map +1 -0
- package/dist/features/chapters-v2/constants/node-constants.js +15 -0
- package/dist/features/chapters-v2/constants/node-constants.js.map +1 -0
- package/dist/features/chapters-v2/utils/index.js +41 -0
- package/dist/features/chapters-v2/utils/index.js.map +1 -0
- package/dist/features/chapters-v2/utils/node-card-utils.js +106 -0
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -0
- package/dist/features/circle-games/games/tutorial/tutorial.js +14 -13
- package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
- package/dist/features/homework/card-menu-options.js +36 -0
- package/dist/features/homework/card-menu-options.js.map +1 -0
- package/dist/features/homework/homework-card.js +136 -0
- package/dist/features/homework/homework-card.js.map +1 -0
- package/dist/features/homework/styles.js +114 -0
- package/dist/features/homework/styles.js.map +1 -0
- package/dist/features/homework/utils.js +28 -0
- package/dist/features/homework/utils.js.map +1 -0
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js +10 -10
- package/dist/features/hooks/use-auto-play-permission/use-auto-play-permission-context-provider.js.map +1 -1
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js +51 -53
- package/dist/features/milestone/edit/comps/edit-milestone-modal/index.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/api/get-milestones.js +9 -17
- package/dist/features/milestone/milestone-list-container/api/get-milestones.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +116 -91
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js +105 -121
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/goals/goal-action-ctas.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js +145 -173
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-info.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js +24 -10
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js +76 -81
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-tabs/milestone-tabs.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js +10 -22
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-utils.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js +70 -37
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js +114 -174
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js +29 -16
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-rank.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js +19 -23
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-styled.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js +23 -35
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js +34 -36
- package/dist/features/milestone/milestone-list-container/milestone-list-container.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list-styled.js.map +1 -1
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js +96 -78
- package/dist/features/milestone/milestone-resources/resources-list/resources-list.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js +6 -34
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-utils.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js +73 -73
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js +8 -7
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheets-list-styled.js.map +1 -1
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js +77 -68
- package/dist/features/milestone/milestone-tests/tests-list/tests-list.js.map +1 -1
- package/dist/features/recent-chapters/api/get-recent-chapters.js +9 -0
- package/dist/features/recent-chapters/api/get-recent-chapters.js.map +1 -0
- package/dist/features/recent-chapters/recent-chapters-styled.js +23 -0
- package/dist/features/recent-chapters/recent-chapters-styled.js.map +1 -0
- package/dist/features/recent-chapters/recent-chapters.js +49 -0
- package/dist/features/recent-chapters/recent-chapters.js.map +1 -0
- package/dist/features/sheets/resources-list/resource-item/resource-item.js +65 -179
- package/dist/features/sheets/resources-list/resource-item/resource-item.js.map +1 -1
- package/dist/features/sheets/resources-list/resources-list.js +5 -5
- package/dist/features/sheets/resources-list/resources-list.js.map +1 -1
- package/dist/features/sheets/resources-list/styled.js +9 -13
- package/dist/features/sheets/resources-list/styled.js.map +1 -1
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js +4 -3
- package/dist/features/sheets/sheets-list/sheet-item/reward-n-actions/teacher-actions/teacher-actions-constant.js.map +1 -1
- package/dist/features/sheets/utils/is-v3-worksheet.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +30 -29
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
- package/dist/features/ui/constants/z-index.js +1 -1
- package/dist/features/ui/constants/z-index.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu-styled.js +28 -14
- package/dist/features/ui/context-menu/context-menu-styled.js.map +1 -1
- package/dist/features/ui/context-menu/context-menu.js +30 -15
- package/dist/features/ui/context-menu/context-menu.js.map +1 -1
- package/dist/features/ui/theme/button.js +17 -102
- package/dist/features/ui/theme/button.js.map +1 -1
- package/dist/index.d.ts +200 -12
- package/dist/index.js +487 -469
- package/dist/index.js.map +1 -1
- package/dist/static/chapter-header-bg-2.c8d96894.svg +1 -0
- package/dist/static/node-custom-test-bg.d3b757be.svg +1 -0
- package/dist/static/node-learn-bg.b61f815c.svg +1 -0
- package/dist/static/node-practice-bg.16cbaf2a.svg +1 -0
- package/dist/static/node-project-bg.e6a33e28.svg +1 -0
- package/dist/static/node-puzzle-bg.3422135c.svg +1 -0
- package/dist/static/node-recap-bg.546154e4.svg +1 -0
- package/dist/static/node-test-prep-bg.42c0b9c4.svg +1 -0
- package/dist/static/node-video-bg.3df3f73a.svg +1 -0
- package/package.json +1 -1
- package/dist/assets/line-icons/icons/closed-eye.js +0 -23
- package/dist/assets/line-icons/icons/closed-eye.js.map +0 -1
- package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js +0 -92
- package/dist/features/milestone/create/comps/milestone-progress-v2/milestone-progress-v2.js.map +0 -1
- package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js +0 -25
- package/dist/features/milestone/create/comps/milestone-progress-v2/styled.js.map +0 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js +0 -13
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element-styled.js.map +0 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js +0 -38
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/context-menu-helper/menu-element.js.map +0 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js +0 -53
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/milestone-widget-status.js.map +0 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js +0 -25
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-widget/outcome/outcome-info.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js +0 -71
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-cta.js.map +0 -1
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js +0 -31
- package/dist/features/milestone/milestone-tests/tests-list/test-sheets-list/test-sheet-item/test-sheet-item-styled.js.map +0 -1
- package/dist/features/sheets/resources-list/resource-item/context-menu-helper/menu-element-styled.js +0 -15
- package/dist/features/sheets/resources-list/resource-item/context-menu-helper/menu-element-styled.js.map +0 -1
- package/dist/features/sheets/resources-list/resource-item/context-menu-helper/menu-element.js +0 -26
- package/dist/features/sheets/resources-list/resource-item/context-menu-helper/menu-element.js.map +0 -1
- package/dist/features/sheets/resources-list/resource-item/styled.js +0 -38
- package/dist/features/sheets/resources-list/resource-item/styled.js.map +0 -1
- package/dist/features/sheets/resources-list/resource-item/utils.js +0 -23
- package/dist/features/sheets/resources-list/resource-item/utils.js.map +0 -1
- package/dist/features/sheets/sheets-analytics-events.js +0 -11
- package/dist/features/sheets/sheets-analytics-events.js.map +0 -1
@@ -0,0 +1,184 @@
|
|
1
|
+
import { jsxs as t, jsx as e } from "react/jsx-runtime";
|
2
|
+
import { memo as P, useRef as X, useCallback as F } from "react";
|
3
|
+
import v from "../../../../../assets/line-icons/icons/book2.js";
|
4
|
+
import z from "../../../../../assets/line-icons/icons/check2.js";
|
5
|
+
import N from "../../../../../assets/line-icons/icons/eye2.js";
|
6
|
+
import U from "../../../../../assets/line-icons/icons/home2.js";
|
7
|
+
import T from "../../../../../assets/line-icons/icons/more-vertical.js";
|
8
|
+
import V from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
|
9
|
+
import Y from "../../../../ui/hooks/use-context-menu-click-handler.js";
|
10
|
+
import q from "../../../../ui/layout/flex-view.js";
|
11
|
+
import J from "../../../../ui/text/text.js";
|
12
|
+
import { BLOCK_TYPE as Q } from "../../../constants/block-constants.js";
|
13
|
+
import { NODE_CARD_STATES as $, TEACHER_MENU_LABELS as Z } from "../../../constants/node-constants.js";
|
14
|
+
import { getNodeTypeBasedBgImage as D } from "../../../utils/index.js";
|
15
|
+
import { getNodeCardBasedIcon as ee } from "../../../utils/node-card-utils.js";
|
16
|
+
import re from "../border-path-animation.js";
|
17
|
+
import { NodeCardContainer as te, NodeCardInfoWrapper as ie, IconWrapper as oe, StyledImportantIcon as ne, NodeKebabMenuWrapper as k, NodeCardContentWrapper as ce, NodeCardTitle as ae, NodeMenuOptionsWrapper as se } from "../node-card-styled.js";
|
18
|
+
import le from "../node-card-tags.js";
|
19
|
+
import de from "../node-menu-options/node-menu-options.js";
|
20
|
+
const { ASSIGN_AS_HW: me, REVERT_TO_CW: pe, REVIEW: he, VIEW: fe, MARK_AS_DONE: $e } = Z, Re = P(
|
21
|
+
({
|
22
|
+
nodeData: r,
|
23
|
+
imageHue: S,
|
24
|
+
blockType: O,
|
25
|
+
isSkipped: C,
|
26
|
+
onNodeAttemptLocationChange: o,
|
27
|
+
onNodeMarkAsDone: n,
|
28
|
+
onNodeView: c,
|
29
|
+
onNodeReview: a
|
30
|
+
}) => {
|
31
|
+
const l = X(null), { menuVisible: W, onMenuClick: u } = Y(l), {
|
32
|
+
accuracy: w,
|
33
|
+
attempt_location: x,
|
34
|
+
node_type: d,
|
35
|
+
card_header: y,
|
36
|
+
title: B,
|
37
|
+
state: s,
|
38
|
+
is_optional: _,
|
39
|
+
sheet_statement: I,
|
40
|
+
permissions: A
|
41
|
+
} = r, {
|
42
|
+
can_change_attempt_location: H,
|
43
|
+
can_mark_familiar: L,
|
44
|
+
can_review: m
|
45
|
+
} = A, p = O === Q.GOAL, i = s === $.LOCKED, R = s === $.NOT_STARTED, G = s === $.IN_PROGRESS, h = x === "INCLASS", K = !I || !p || i, g = !_ && (G || R), M = D(d), b = ee(d), f = F(
|
46
|
+
(E) => {
|
47
|
+
switch (E) {
|
48
|
+
case "node-card-view":
|
49
|
+
m ? a == null || a(r) : c == null || c(r);
|
50
|
+
return;
|
51
|
+
case "node-card-assign-as-hw":
|
52
|
+
o == null || o(r);
|
53
|
+
return;
|
54
|
+
case "node-card-mark-as-done":
|
55
|
+
n == null || n(r);
|
56
|
+
return;
|
57
|
+
default:
|
58
|
+
throw new Error(`No callback function for ${E}`);
|
59
|
+
}
|
60
|
+
},
|
61
|
+
[
|
62
|
+
m,
|
63
|
+
r,
|
64
|
+
o,
|
65
|
+
n,
|
66
|
+
a,
|
67
|
+
c
|
68
|
+
]
|
69
|
+
), j = [
|
70
|
+
{
|
71
|
+
id: "node-card-view",
|
72
|
+
label: m ? he : fe,
|
73
|
+
icon: N,
|
74
|
+
disabled: !1,
|
75
|
+
onClick: f
|
76
|
+
},
|
77
|
+
{
|
78
|
+
id: "node-card-assign-as-hw",
|
79
|
+
label: h ? me : pe,
|
80
|
+
icon: h ? U : v,
|
81
|
+
disabled: !H,
|
82
|
+
onClick: f
|
83
|
+
},
|
84
|
+
{
|
85
|
+
id: "node-card-mark-as-done",
|
86
|
+
label: $e,
|
87
|
+
icon: z,
|
88
|
+
disabled: !L,
|
89
|
+
onClick: f
|
90
|
+
}
|
91
|
+
];
|
92
|
+
return /* @__PURE__ */ t(
|
93
|
+
te,
|
94
|
+
{
|
95
|
+
$showOutline: !g,
|
96
|
+
$isSheetLocked: i,
|
97
|
+
$background: `${S}_2`,
|
98
|
+
$disabled: !!C,
|
99
|
+
children: [
|
100
|
+
/* @__PURE__ */ t(
|
101
|
+
V,
|
102
|
+
{
|
103
|
+
renderAs: "primary",
|
104
|
+
tooltipItem: I,
|
105
|
+
position: "bottom",
|
106
|
+
zIndex: 5,
|
107
|
+
hidden: K,
|
108
|
+
parentWidth: "100%",
|
109
|
+
widthX: 11.25,
|
110
|
+
children: [
|
111
|
+
/* @__PURE__ */ t(
|
112
|
+
ie,
|
113
|
+
{
|
114
|
+
$flexDirection: "row",
|
115
|
+
$alignItems: "center",
|
116
|
+
$width: "100%",
|
117
|
+
$heightX: 3.5,
|
118
|
+
$bgImage: M,
|
119
|
+
$gutterX: 0.78125,
|
120
|
+
$flexGap: 8.5,
|
121
|
+
children: [
|
122
|
+
/* @__PURE__ */ t(
|
123
|
+
oe,
|
124
|
+
{
|
125
|
+
$width: 31,
|
126
|
+
$height: 31,
|
127
|
+
$background: "WHITE_1",
|
128
|
+
$position: "relative",
|
129
|
+
$alignItems: "center",
|
130
|
+
$justifyContent: "center",
|
131
|
+
$opacity: i ? 0.5 : 1,
|
132
|
+
children: [
|
133
|
+
b && /* @__PURE__ */ e(b, { width: 20, height: 20 }),
|
134
|
+
!_ && /* @__PURE__ */ e(ne, {})
|
135
|
+
]
|
136
|
+
}
|
137
|
+
),
|
138
|
+
/* @__PURE__ */ t(J, { $renderAs: "ac4-black", $color: "BLACK", $opacity: i ? 0.5 : 1, children: [
|
139
|
+
y,
|
140
|
+
" ",
|
141
|
+
h && ". CW"
|
142
|
+
] }),
|
143
|
+
/* @__PURE__ */ e(q, { className: "context-menu", children: p && /* @__PURE__ */ e(k, { ref: l, onClick: u, children: /* @__PURE__ */ e(T, { width: 16, height: 16 }) }) }),
|
144
|
+
g && !C && /* @__PURE__ */ e(re, {})
|
145
|
+
]
|
146
|
+
}
|
147
|
+
),
|
148
|
+
/* @__PURE__ */ e(le, { nodeType: d, state: s, accuracy: w }),
|
149
|
+
!p && /* @__PURE__ */ t(
|
150
|
+
ce,
|
151
|
+
{
|
152
|
+
$flexDirection: "row",
|
153
|
+
$alignItems: "center",
|
154
|
+
$background: "WHITE_1",
|
155
|
+
$flexGap: 8,
|
156
|
+
$heightX: 4,
|
157
|
+
$justifyContent: "space-between",
|
158
|
+
children: [
|
159
|
+
/* @__PURE__ */ e(
|
160
|
+
ae,
|
161
|
+
{
|
162
|
+
$renderAs: "ab3",
|
163
|
+
$color: "BLACK_1",
|
164
|
+
$opacity: i ? 0.5 : 1,
|
165
|
+
children: B
|
166
|
+
}
|
167
|
+
),
|
168
|
+
/* @__PURE__ */ e(k, { ref: l, onClick: u, children: /* @__PURE__ */ e(T, { width: 16, height: 16 }) })
|
169
|
+
]
|
170
|
+
}
|
171
|
+
)
|
172
|
+
]
|
173
|
+
}
|
174
|
+
),
|
175
|
+
/* @__PURE__ */ e(se, { $visible: W, children: /* @__PURE__ */ e(de, { options: j }) })
|
176
|
+
]
|
177
|
+
}
|
178
|
+
);
|
179
|
+
}
|
180
|
+
);
|
181
|
+
export {
|
182
|
+
Re as default
|
183
|
+
};
|
184
|
+
//# sourceMappingURL=teacher-actions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"teacher-actions.js","sources":["../../../../../../src/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.tsx"],"sourcesContent":["import type { INodeCardProps } from '../node-card-types';\nimport type { INodeMenuOption } from '../node-menu-options/node-menu-options-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useRef } from 'react';\n\nimport Book2Icon from '../../../../../assets/line-icons/icons/book2';\nimport Check2Icon from '../../../../../assets/line-icons/icons/check2';\nimport Eye2Icon from '../../../../../assets/line-icons/icons/eye2';\nimport Home2Icon from '../../../../../assets/line-icons/icons/home2';\nimport MoreVerticalIcon from '../../../../../assets/line-icons/icons/more-vertical';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport useContextMenuClickHandler from '../../../../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport Text from '../../../../ui/text/text';\nimport { BLOCK_TYPE } from '../../../constants/block-constants';\nimport { NODE_CARD_STATES, TEACHER_MENU_LABELS } from '../../../constants/node-constants';\nimport { getNodeTypeBasedBgImage } from '../../../utils';\nimport { getNodeCardBasedIcon } from '../../../utils/node-card-utils';\nimport 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 { ASSIGN_AS_HW, REVERT_TO_CW, REVIEW, VIEW, MARK_AS_DONE } = TEACHER_MENU_LABELS;\n\nconst TeacherActions: FC<Omit<INodeCardProps, 'userType'>> = memo(\n ({\n nodeData,\n imageHue,\n blockType,\n isSkipped,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeView,\n onNodeReview,\n }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(containerRef);\n\n const {\n accuracy,\n attempt_location: attemptLocation,\n node_type: nodeType,\n card_header: cardHeader,\n title,\n state,\n is_optional: isOptional,\n sheet_statement: sheetStatement,\n permissions,\n } = nodeData;\n\n const {\n can_change_attempt_location: canChangeAttemptLocation,\n can_mark_familiar: canMarkFamiliar,\n can_review: canReview,\n } = permissions;\n\n const isGoalBlock = blockType === BLOCK_TYPE.GOAL;\n const sheetLocked = state === NODE_CARD_STATES.LOCKED;\n const sheetNotStarted = state === NODE_CARD_STATES.NOT_STARTED;\n const sheetInProgress = state === NODE_CARD_STATES.IN_PROGRESS;\n const inClassSheet = attemptLocation === 'INCLASS';\n const tooltipHidden = !sheetStatement || !isGoalBlock || sheetLocked;\n\n const showCardAnimation = !isOptional && (sheetInProgress || sheetNotStarted);\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-view':\n if (canReview) {\n onNodeReview?.(nodeData);\n } else {\n onNodeView?.(nodeData);\n }\n\n return;\n\n case 'node-card-assign-as-hw':\n onNodeAttemptLocationChange?.(nodeData);\n\n return;\n\n case 'node-card-mark-as-done':\n onNodeMarkAsDone?.(nodeData);\n\n return;\n default:\n throw new Error(`No callback function for ${optionId}`);\n }\n },\n [\n canReview,\n nodeData,\n onNodeAttemptLocationChange,\n onNodeMarkAsDone,\n onNodeReview,\n onNodeView,\n ],\n );\n\n const menuOptions: INodeMenuOption[] = [\n {\n id: 'node-card-view',\n label: canReview ? REVIEW : VIEW,\n icon: Eye2Icon,\n disabled: false,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-assign-as-hw',\n label: inClassSheet ? ASSIGN_AS_HW : REVERT_TO_CW,\n icon: inClassSheet ? Home2Icon : Book2Icon,\n disabled: !canChangeAttemptLocation,\n onClick: handleOnMenuOptionClick,\n },\n {\n id: 'node-card-mark-as-done',\n label: MARK_AS_DONE,\n icon: Check2Icon,\n disabled: !canMarkFamiliar,\n onClick: handleOnMenuOptionClick,\n },\n ];\n\n return (\n <Styled.NodeCardContainer\n $showOutline={!showCardAnimation}\n $isSheetLocked={sheetLocked}\n $background={`${imageHue}_2`}\n $disabled={Boolean(isSkipped)}\n >\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem={sheetStatement}\n position=\"bottom\"\n zIndex={5}\n hidden={tooltipHidden}\n parentWidth=\"100%\"\n widthX={11.25}\n >\n <Styled.NodeCardInfoWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $width=\"100%\"\n $heightX={3.5}\n $bgImage={nodeBgImage}\n $gutterX={0.78125}\n $flexGap={8.5}\n >\n <Styled.IconWrapper\n $width={31}\n $height={31}\n $background=\"WHITE_1\"\n $position=\"relative\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n {NodeCardIcon && <NodeCardIcon width={20} height={20} />}\n {!isOptional && <Styled.StyledImportantIcon />}\n </Styled.IconWrapper>\n\n <Text $renderAs=\"ac4-black\" $color=\"BLACK\" $opacity={sheetLocked ? 0.5 : 1}>\n {cardHeader} {inClassSheet && `. CW`}\n </Text>\n\n <FlexView className=\"context-menu\">\n {isGoalBlock && (\n <Styled.NodeKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.NodeKebabMenuWrapper>\n )}\n </FlexView>\n\n {showCardAnimation && !isSkipped && <BorderPathAnimation />}\n </Styled.NodeCardInfoWrapper>\n\n <NodeCardTags nodeType={nodeType} state={state} accuracy={accuracy} />\n\n {!isGoalBlock && (\n <Styled.NodeCardContentWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $background=\"WHITE_1\"\n $flexGap={8}\n $heightX={4}\n $justifyContent=\"space-between\"\n >\n <Styled.NodeCardTitle\n $renderAs=\"ab3\"\n $color=\"BLACK_1\"\n $opacity={sheetLocked ? 0.5 : 1}\n >\n {title}\n </Styled.NodeCardTitle>\n\n <Styled.NodeKebabMenuWrapper ref={containerRef} onClick={onMenuClick}>\n <MoreVerticalIcon width={16} height={16} />\n </Styled.NodeKebabMenuWrapper>\n </Styled.NodeCardContentWrapper>\n )}\n </ArrowTooltip>\n\n <Styled.NodeMenuOptionsWrapper $visible={menuVisible}>\n <NodeMenuOptions options={menuOptions} />\n </Styled.NodeMenuOptionsWrapper>\n </Styled.NodeCardContainer>\n );\n },\n);\n\nexport default TeacherActions;\n"],"names":["ASSIGN_AS_HW","REVERT_TO_CW","REVIEW","VIEW","MARK_AS_DONE","TEACHER_MENU_LABELS","TeacherActions","memo","nodeData","imageHue","blockType","isSkipped","onNodeAttemptLocationChange","onNodeMarkAsDone","onNodeView","onNodeReview","containerRef","useRef","menuVisible","onMenuClick","useContextMenuClickHandler","accuracy","attemptLocation","nodeType","cardHeader","title","state","isOptional","sheetStatement","permissions","canChangeAttemptLocation","canMarkFamiliar","canReview","isGoalBlock","BLOCK_TYPE","sheetLocked","NODE_CARD_STATES","sheetNotStarted","sheetInProgress","inClassSheet","tooltipHidden","showCardAnimation","nodeBgImage","getNodeTypeBasedBgImage","NodeCardIcon","getNodeCardBasedIcon","handleOnMenuOptionClick","useCallback","optionId","menuOptions","Eye2Icon","Home2Icon","Book2Icon","Check2Icon","jsxs","Styled.NodeCardContainer","ArrowTooltip","Styled.NodeCardInfoWrapper","Styled.IconWrapper","jsx","Styled.StyledImportantIcon","Text","FlexView","Styled.NodeKebabMenuWrapper","MoreVerticalIcon","BorderPathAnimation","NodeCardTags","Styled.NodeCardContentWrapper","Styled.NodeCardTitle","Styled.NodeMenuOptionsWrapper","NodeMenuOptions"],"mappings":"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"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import e from "styled-components";
|
2
|
+
import i from "../../../ui/layout/flex-view.js";
|
3
|
+
const p = e(i)(({ $onlyIcon: t, theme: o }) => `
|
4
|
+
${!t && "padding-left: 2px;"}
|
5
|
+
|
6
|
+
max-height: 20px;
|
7
|
+
height: fit-content;
|
8
|
+
outline: 1px solid ${o.colors.BLACK_1};
|
9
|
+
`);
|
10
|
+
export {
|
11
|
+
p as TagContainer
|
12
|
+
};
|
13
|
+
//# sourceMappingURL=tag-styled.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tag-styled.js","sources":["../../../../../src/features/chapters-v2/comps/tag/tag-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\n\ninterface ITagContainer {\n $onlyIcon?: boolean;\n}\n\nconst TagContainer = styled(FlexView)<ITagContainer>(({ $onlyIcon, theme }) => {\n return `\n ${!$onlyIcon && 'padding-left: 2px;'}\n\n max-height: 20px;\n height: fit-content;\n outline: 1px solid ${theme.colors.BLACK_1};\n `;\n});\n\nexport { TagContainer };\n"],"names":["TagContainer","styled","FlexView","$onlyIcon","theme"],"mappings":";;AAQM,MAAAA,IAAeC,EAAOC,CAAQ,EAAiB,CAAC,EAAE,WAAAC,GAAW,OAAAC,QAC1D;AAAA,MACH,CAACD,KAAa,oBAAoB;AAAA;AAAA;AAAA;AAAA,yBAIfC,EAAM,OAAO,OAAO;AAAA,GAE5C;"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { jsxs as n, jsx as o } from "react/jsx-runtime";
|
2
|
+
import { memo as i } from "react";
|
3
|
+
import s from "../../../ui/text/text.js";
|
4
|
+
import { TagContainer as c } from "./tag-styled.js";
|
5
|
+
const f = i(({ label: r, Icon: e }) => {
|
6
|
+
const t = !r;
|
7
|
+
return /* @__PURE__ */ n(
|
8
|
+
c,
|
9
|
+
{
|
10
|
+
$flexDirection: "row",
|
11
|
+
$alignItems: "center",
|
12
|
+
$justifyContent: "center",
|
13
|
+
$borderRadius: 50,
|
14
|
+
$gap: t ? 0 : 6,
|
15
|
+
$gutter: t ? 0 : 6,
|
16
|
+
$background: "WHITE_1",
|
17
|
+
$onlyIcon: t,
|
18
|
+
children: [
|
19
|
+
e ? /* @__PURE__ */ o(e, { width: 20, height: 20 }) : void 0,
|
20
|
+
r && /* @__PURE__ */ o(s, { $renderAs: "ac4-black", children: r })
|
21
|
+
]
|
22
|
+
}
|
23
|
+
);
|
24
|
+
});
|
25
|
+
export {
|
26
|
+
f as default
|
27
|
+
};
|
28
|
+
//# sourceMappingURL=tag.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tag.js","sources":["../../../../../src/features/chapters-v2/comps/tag/tag.tsx"],"sourcesContent":["import type { FC } from 'react';\n\nimport React, { memo } from 'react';\n\nimport Text from '../../../ui/text/text';\nimport * as Styled from './tag-styled';\n\ninterface ITagProps {\n label?: string;\n Icon?: FC<React.SVGProps<SVGSVGElement>>;\n}\n\nconst Tag: FC<ITagProps> = memo(({ label, Icon }) => {\n const isOnlyIconPresent = !label;\n\n return (\n <Styled.TagContainer\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={50}\n $gap={isOnlyIconPresent ? 0 : 6}\n $gutter={isOnlyIconPresent ? 0 : 6}\n $background=\"WHITE_1\"\n $onlyIcon={isOnlyIconPresent}\n >\n {Icon ? <Icon width={20} height={20} /> : undefined}\n\n {label && <Text $renderAs=\"ac4-black\">{label}</Text>}\n </Styled.TagContainer>\n );\n});\n\nexport default Tag;\n"],"names":["Tag","memo","label","Icon","isOnlyIconPresent","jsxs","Styled.TagContainer","jsx","Text"],"mappings":";;;;AAYA,MAAMA,IAAqBC,EAAK,CAAC,EAAE,OAAAC,GAAO,MAAAC,QAAW;AACnD,QAAMC,IAAoB,CAACF;AAGzB,SAAA,gBAAAG;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,gBAAe;AAAA,MACf,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,MAAMF,IAAoB,IAAI;AAAA,MAC9B,SAASA,IAAoB,IAAI;AAAA,MACjC,aAAY;AAAA,MACZ,WAAWA;AAAA,MAEV,UAAA;AAAA,QAAAD,sBAAQA,GAAK,EAAA,OAAO,IAAI,QAAQ,IAAI,IAAK;AAAA,QAEzCD,KAAS,gBAAAK,EAACC,GAAK,EAAA,WAAU,aAAa,UAAMN,GAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGnD,CAAC;"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
var A = /* @__PURE__ */ ((S) => (S.DEFAULT = "DEFAULT", S.PREREQ = "PREREQ", S.RECAP = "RECAP", S.GOAL = "GOAL", S.TESTS = "TESTS", S.PLAYLIST = "PLAYLIST", S.SOLUTIONS = "SOLUTIONS", S.NOTES = "NOTES", S.FLASHCARDS = "FLASHCARDS", S.SUBJECTIVES = "SUBJECTIVES", S.PUZZLE_CARDS = "PUZZLE_CARDS", S.SAT_MOCK_TEST = "SAT_MOCK_TEST", S))(A || {});
|
2
|
+
const T = {
|
3
|
+
DEFAULT: "Default",
|
4
|
+
PREREQ: "Prerequisite",
|
5
|
+
RECAP: "Recap",
|
6
|
+
GOAL: "Lesson",
|
7
|
+
TESTS: "Tests",
|
8
|
+
PLAYLIST: "Videos",
|
9
|
+
SOLUTIONS: "Solutions",
|
10
|
+
NOTES: "Notes",
|
11
|
+
FLASHCARDS: "Flashcards",
|
12
|
+
SUBJECTIVES: "Subjective Questions",
|
13
|
+
PUZZLE_CARDS: "Puzzles",
|
14
|
+
SAT_MOCK_TEST: "SAT Mock Test"
|
15
|
+
};
|
16
|
+
export {
|
17
|
+
T as BLOCK_NAME,
|
18
|
+
A as BLOCK_TYPE
|
19
|
+
};
|
20
|
+
//# sourceMappingURL=block-constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"block-constants.js","sources":["../../../../src/features/chapters-v2/constants/block-constants.ts"],"sourcesContent":["export enum BLOCK_TYPE {\n DEFAULT = 'DEFAULT',\n PREREQ = 'PREREQ',\n RECAP = 'RECAP',\n GOAL = 'GOAL',\n TESTS = 'TESTS',\n PLAYLIST = 'PLAYLIST',\n SOLUTIONS = 'SOLUTIONS',\n NOTES = 'NOTES',\n FLASHCARDS = 'FLASHCARDS',\n SUBJECTIVES = 'SUBJECTIVES',\n PUZZLE_CARDS = 'PUZZLE_CARDS',\n SAT_MOCK_TEST = 'SAT_MOCK_TEST',\n}\n\nexport enum SECTION_CODE {\n READINESS = 'READINESS',\n GOALS = 'GOALS',\n TESTS = 'TESTS',\n ENRICHMENT = 'ENRICHMENT',\n SUBJECTIVE = 'SUBJECTIVE',\n VIDEOS = 'VIDEOS',\n NOTES = 'NOTES',\n FLASHCARDS = 'FLASHCARDS',\n PUZZLE_CARDS = 'PUZZLE_CARDS',\n}\n\nexport const BLOCK_NAME: Record<BLOCK_TYPE, string> = {\n [BLOCK_TYPE.DEFAULT]: 'Default',\n [BLOCK_TYPE.PREREQ]: 'Prerequisite',\n [BLOCK_TYPE.RECAP]: 'Recap',\n [BLOCK_TYPE.GOAL]: 'Lesson',\n [BLOCK_TYPE.TESTS]: 'Tests',\n [BLOCK_TYPE.PLAYLIST]: 'Videos',\n [BLOCK_TYPE.SOLUTIONS]: 'Solutions',\n [BLOCK_TYPE.NOTES]: 'Notes',\n [BLOCK_TYPE.FLASHCARDS]: 'Flashcards',\n [BLOCK_TYPE.SUBJECTIVES]: 'Subjective Questions',\n [BLOCK_TYPE.PUZZLE_CARDS]: 'Puzzles',\n [BLOCK_TYPE.SAT_MOCK_TEST]: 'SAT Mock Test',\n};\n"],"names":["BLOCK_TYPE","BLOCK_NAME"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,SAAS,UACTA,EAAA,QAAQ,SACRA,EAAA,OAAO,QACPA,EAAA,QAAQ,SACRA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,QAAQ,SACRA,EAAA,aAAa,cACbA,EAAA,cAAc,eACdA,EAAA,eAAe,gBACfA,EAAA,gBAAgB,iBAZNA,IAAAA,KAAA,CAAA,CAAA;AA2BL,MAAMC,IAAyC;AAAA,EACnD,SAAqB;AAAA,EACrB,QAAoB;AAAA,EACpB,OAAmB;AAAA,EACnB,MAAkB;AAAA,EAClB,OAAmB;AAAA,EACnB,UAAsB;AAAA,EACtB,WAAuB;AAAA,EACvB,OAAmB;AAAA,EACnB,YAAwB;AAAA,EACxB,aAAyB;AAAA,EACzB,cAA0B;AAAA,EAC1B,eAA2B;AAC9B;"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
const I = {
|
2
|
+
ASSIGN_AS_HW: "Assign as HW",
|
3
|
+
REVERT_TO_CW: "Revert to CW",
|
4
|
+
MARK_AS_DONE: "Mark as Done",
|
5
|
+
SKIP: "Skip",
|
6
|
+
REVERT_SKIP: "Revert Skip",
|
7
|
+
REVIEW: "Review",
|
8
|
+
VIEW: "View"
|
9
|
+
};
|
10
|
+
var R = /* @__PURE__ */ ((E) => (E.LOCKED = "LOCKED", E.NOT_STARTED = "NOT_STARTED", E.WAIT_FOR_REVIEW = "WAIT_FOR_REVIEW", E.IN_PROGRESS = "IN_PROGRESS", E.COMPLETED = "COMPLETED", E))(R || {});
|
11
|
+
export {
|
12
|
+
R as NODE_CARD_STATES,
|
13
|
+
I as TEACHER_MENU_LABELS
|
14
|
+
};
|
15
|
+
//# sourceMappingURL=node-constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"node-constants.js","sources":["../../../../src/features/chapters-v2/constants/node-constants.ts"],"sourcesContent":["export const TEACHER_MENU_LABELS = {\n ASSIGN_AS_HW: 'Assign as HW',\n REVERT_TO_CW: 'Revert to CW',\n MARK_AS_DONE: 'Mark as Done',\n SKIP: 'Skip',\n REVERT_SKIP: 'Revert Skip',\n REVIEW: 'Review',\n VIEW: 'View',\n};\n\nexport enum NODE_CARD_STATES {\n LOCKED = 'LOCKED',\n NOT_STARTED = 'NOT_STARTED',\n WAIT_FOR_REVIEW = 'WAIT_FOR_REVIEW',\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n}\n"],"names":["TEACHER_MENU_LABELS","NODE_CARD_STATES"],"mappings":"AAAO,MAAMA,IAAsB;AAAA,EACjC,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AACR;AAEY,IAAAC,sBAAAA,OACVA,EAAA,SAAS,UACTA,EAAA,cAAc,eACdA,EAAA,kBAAkB,mBAClBA,EAAA,cAAc,eACdA,EAAA,YAAY,aALFA,IAAAA,KAAA,CAAA,CAAA;"}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { ILLUSTRATIONS as e } from "../../../assets/illustrations/illustrations.js";
|
2
|
+
const _ = (t) => {
|
3
|
+
if (!t) return 0;
|
4
|
+
const { mandatory: E } = t, { completed: c, total: r } = E;
|
5
|
+
return Math.floor(c / r * 100);
|
6
|
+
}, o = (t) => {
|
7
|
+
switch (t) {
|
8
|
+
case "LEARNING":
|
9
|
+
return e.NODE_LEARN_BG;
|
10
|
+
case "RECAP":
|
11
|
+
return e.NODE_RECAP_BG;
|
12
|
+
case "ASSESSMENT":
|
13
|
+
case "DYNAMIC":
|
14
|
+
return e.NODE_CUSTOM_TEST_BG;
|
15
|
+
case "PRACTICE":
|
16
|
+
case "EXTRA_PRACTICE":
|
17
|
+
case "TARGET_PRACTICE":
|
18
|
+
case "MASTERY":
|
19
|
+
return e.NODE_PRACTICE_BG;
|
20
|
+
case "PUZZLE_EASY":
|
21
|
+
case "PUZZLE_MEDIUM":
|
22
|
+
case "PUZZLE_HARD":
|
23
|
+
return e.NODE_PUZZLE_BG;
|
24
|
+
case "VIDEO":
|
25
|
+
return e.NODE_VIDEO_BG;
|
26
|
+
default:
|
27
|
+
return e.NODE_CUSTOM_TEST_BG;
|
28
|
+
}
|
29
|
+
}, T = (t, E, c, r) => {
|
30
|
+
if (!t) {
|
31
|
+
if (!c) return `(${E})`;
|
32
|
+
if (r !== void 0 && r > 0)
|
33
|
+
return `${r}`;
|
34
|
+
}
|
35
|
+
};
|
36
|
+
export {
|
37
|
+
_ as getChapterCompletionPercentage,
|
38
|
+
o as getNodeTypeBasedBgImage,
|
39
|
+
T as getSheetNLessonCount
|
40
|
+
};
|
41
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +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;"}
|
@@ -0,0 +1,106 @@
|
|
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) {
|
31
|
+
case "LOCKED":
|
32
|
+
return {
|
33
|
+
icon: /* @__PURE__ */ e(p, { width: 32, height: 32 }),
|
34
|
+
top: -12,
|
35
|
+
right: -12
|
36
|
+
};
|
37
|
+
case "IN_PROGRESS":
|
38
|
+
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
|
+
)
|
53
|
+
};
|
54
|
+
case "COMPLETED":
|
55
|
+
return {
|
56
|
+
icon: /* @__PURE__ */ e(
|
57
|
+
i,
|
58
|
+
{
|
59
|
+
Icon: u,
|
60
|
+
label: typeof c == "number" ? `${c}%` : void 0
|
61
|
+
}
|
62
|
+
),
|
63
|
+
top: -10,
|
64
|
+
right: -10
|
65
|
+
};
|
66
|
+
case "WAIT_FOR_REVIEW":
|
67
|
+
return {
|
68
|
+
icon: /* @__PURE__ */ e(i, { Icon: d }),
|
69
|
+
//<AlertIcon width={32} height={32} fill="white" />,
|
70
|
+
top: -10,
|
71
|
+
right: -10
|
72
|
+
};
|
73
|
+
default:
|
74
|
+
return {
|
75
|
+
icon: void 0
|
76
|
+
};
|
77
|
+
}
|
78
|
+
}, X = (r) => {
|
79
|
+
switch (r) {
|
80
|
+
case "LEARNING":
|
81
|
+
return I;
|
82
|
+
case "RECAP":
|
83
|
+
return R;
|
84
|
+
case "DYNAMIC":
|
85
|
+
case "ASSESSMENT":
|
86
|
+
return E;
|
87
|
+
case "PRACTICE":
|
88
|
+
case "EXTRA_PRACTICE":
|
89
|
+
case "TARGET_PRACTICE":
|
90
|
+
case "MASTERY":
|
91
|
+
return f;
|
92
|
+
case "PUZZLE_EASY":
|
93
|
+
case "PUZZLE_MEDIUM":
|
94
|
+
case "PUZZLE_HARD":
|
95
|
+
return T;
|
96
|
+
case "VIDEO":
|
97
|
+
return l;
|
98
|
+
default:
|
99
|
+
return D;
|
100
|
+
}
|
101
|
+
};
|
102
|
+
export {
|
103
|
+
X as getNodeCardBasedIcon,
|
104
|
+
W as getNodeStateBasedTagInfo
|
105
|
+
};
|
106
|
+
//# sourceMappingURL=node-card-utils.js.map
|
@@ -0,0 +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,26 +1,26 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { useState as
|
1
|
+
import { jsxs as a, jsx as r } from "react/jsx-runtime";
|
2
|
+
import { useState as l, useRef as f, useCallback as h } from "react";
|
3
3
|
import g from "../../../../assets/line-icons/icons/cross.js";
|
4
4
|
import C from "../../../ui/text/text.js";
|
5
|
-
import { GameTutorialWrapper as
|
5
|
+
import { GameTutorialWrapper as I, GameTutorialHeader as V, HeaderIconContainer as x, GameTutorialContainer as T, VideoContainer as $, VideoProgressWrapper as G, VideoProgressContainer as H, VideoProgress as P } from "./tutorial-styled.js";
|
6
6
|
const E = ({
|
7
|
-
src:
|
8
|
-
title:
|
9
|
-
onCross:
|
7
|
+
src: d,
|
8
|
+
title: t,
|
9
|
+
onCross: o,
|
10
10
|
showProgress: m = !0,
|
11
11
|
onTutorialPlayedOnce: e
|
12
12
|
}) => {
|
13
|
-
const [i, u] =
|
13
|
+
const [i, u] = l(0), s = f(!1), p = h(
|
14
14
|
(n) => {
|
15
15
|
const c = (n.target.currentTime || 0) / (n.target.duration || 1) * 100;
|
16
16
|
c >= 90 && !s.current && (s.current = !0, e == null || e()), u(c);
|
17
17
|
},
|
18
18
|
[e]
|
19
19
|
);
|
20
|
-
return /* @__PURE__ */
|
21
|
-
(
|
22
|
-
|
23
|
-
|
20
|
+
return /* @__PURE__ */ a(I, { children: [
|
21
|
+
(t || o) && /* @__PURE__ */ a(V, { children: [
|
22
|
+
t && /* @__PURE__ */ r(C, { $renderAs: "ac3", $color: "WHITE", $align: "center", children: t }),
|
23
|
+
o && /* @__PURE__ */ r(x, { children: /* @__PURE__ */ r(g, { color: "#fff", onClick: o }) })
|
24
24
|
] }),
|
25
25
|
/* @__PURE__ */ r(T, { children: /* @__PURE__ */ r($, { children: /* @__PURE__ */ r(
|
26
26
|
"video",
|
@@ -28,10 +28,11 @@ const E = ({
|
|
28
28
|
loop: !0,
|
29
29
|
autoPlay: !0,
|
30
30
|
muted: !0,
|
31
|
-
src:
|
31
|
+
src: d,
|
32
32
|
onTimeUpdate: p,
|
33
33
|
disablePictureInPicture: !0,
|
34
|
-
itemType: "video/mp4"
|
34
|
+
itemType: "video/mp4",
|
35
|
+
playsInline: !0
|
35
36
|
}
|
36
37
|
) }) }),
|
37
38
|
m && /* @__PURE__ */ r(G, { children: /* @__PURE__ */ r(H, { children: i > 0 && /* @__PURE__ */ r(P, { $width: i }) }) })
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tutorial.js","sources":["../../../../../src/features/circle-games/games/tutorial/tutorial.tsx"],"sourcesContent":["import type { ITutorialProps } from './tutorial-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef, useState } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './tutorial-styled';\n\nexport const Tutorial = ({\n src,\n title,\n onCross,\n showProgress = true,\n onTutorialPlayedOnce,\n}: ITutorialProps) => {\n const [progress, setProgress] = useState(0);\n const hasVideoEnded = useRef(false);\n\n const onProgress = useCallback(\n (e: ChangeEvent<HTMLVideoElement>) => {\n const p = ((e.target.currentTime || 0) / (e.target.duration || 1)) * 100;\n\n if (p >= 90 && !hasVideoEnded.current) {\n hasVideoEnded.current = true;\n onTutorialPlayedOnce?.();\n }\n\n setProgress(p);\n },\n [onTutorialPlayedOnce],\n );\n\n return (\n <Styled.GameTutorialWrapper>\n {(title || onCross) && (\n <Styled.GameTutorialHeader>\n {title && (\n <Text $renderAs=\"ac3\" $color=\"WHITE\" $align=\"center\">\n {title}\n </Text>\n )}\n {onCross && (\n <Styled.HeaderIconContainer>\n <CrossIcon color=\"#fff\" onClick={onCross} />\n </Styled.HeaderIconContainer>\n )}\n </Styled.GameTutorialHeader>\n )}\n\n <Styled.GameTutorialContainer>\n <Styled.VideoContainer>\n <video\n loop={true}\n autoPlay={true}\n muted={true}\n src={src}\n onTimeUpdate={onProgress}\n disablePictureInPicture={true}\n itemType=\"video/mp4\"\n />\n </Styled.VideoContainer>\n </Styled.GameTutorialContainer>\n\n {showProgress && (\n <Styled.VideoProgressWrapper>\n <Styled.VideoProgressContainer>\n {progress > 0 && <Styled.VideoProgress $width={progress} />}\n </Styled.VideoProgressContainer>\n </Styled.VideoProgressWrapper>\n )}\n </Styled.GameTutorialWrapper>\n );\n};\n"],"names":["Tutorial","src","title","onCross","showProgress","onTutorialPlayedOnce","progress","setProgress","useState","hasVideoEnded","useRef","onProgress","useCallback","e","p","jsxs","Styled.GameTutorialWrapper","Styled.GameTutorialHeader","jsx","Text","Styled.HeaderIconContainer","CrossIcon","Styled.GameTutorialContainer","Styled.VideoContainer","Styled.VideoProgressWrapper","Styled.VideoProgressContainer","Styled.VideoProgress"],"mappings":";;;;;AASO,MAAMA,IAAW,CAAC;AAAA,EACvB,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,sBAAAC;AACF,MAAsB;AACpB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpCC,IAAgBC,EAAO,EAAK,GAE5BC,IAAaC;AAAA,IACjB,CAACC,MAAqC;AAC9B,YAAAC,KAAMD,EAAE,OAAO,eAAe,MAAMA,EAAE,OAAO,YAAY,KAAM;AAErE,MAAIC,KAAK,MAAM,CAACL,EAAc,YAC5BA,EAAc,UAAU,IACDJ,KAAA,QAAAA,MAGzBE,EAAYO,CAAC;AAAA,IACf;AAAA,IACA,CAACT,CAAoB;AAAA,EAAA;AAIrB,SAAA,gBAAAU,EAACC,GAAA,EACG,UAAA;AAAA,KAAAd,KAASC,MACT,gBAAAY,EAACE,GAAA,EACE,UAAA;AAAA,MACCf,KAAA,gBAAAgB,EAACC,KAAK,WAAU,OAAM,QAAO,SAAQ,QAAO,UACzC,UACHjB,EAAA,CAAA;AAAA,MAEDC,KACE,gBAAAe,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAU,OAAM,QAAO,SAASlB,EAAA,CAAS,EAC5C,CAAA;AAAA,IAAA,GAEJ;AAAA,sBAGDmB,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EACC,UAAA,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAAjB;AAAA,QACA,cAAcU;AAAA,QACd,yBAAyB;AAAA,QACzB,UAAS;AAAA,MAAA;AAAA,
|
1
|
+
{"version":3,"file":"tutorial.js","sources":["../../../../../src/features/circle-games/games/tutorial/tutorial.tsx"],"sourcesContent":["import type { ITutorialProps } from './tutorial-types';\nimport type { ChangeEvent } from 'react';\n\nimport { useCallback, useRef, useState } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Text from '../../../ui/text/text';\nimport * as Styled from './tutorial-styled';\n\nexport const Tutorial = ({\n src,\n title,\n onCross,\n showProgress = true,\n onTutorialPlayedOnce,\n}: ITutorialProps) => {\n const [progress, setProgress] = useState(0);\n const hasVideoEnded = useRef(false);\n\n const onProgress = useCallback(\n (e: ChangeEvent<HTMLVideoElement>) => {\n const p = ((e.target.currentTime || 0) / (e.target.duration || 1)) * 100;\n\n if (p >= 90 && !hasVideoEnded.current) {\n hasVideoEnded.current = true;\n onTutorialPlayedOnce?.();\n }\n\n setProgress(p);\n },\n [onTutorialPlayedOnce],\n );\n\n return (\n <Styled.GameTutorialWrapper>\n {(title || onCross) && (\n <Styled.GameTutorialHeader>\n {title && (\n <Text $renderAs=\"ac3\" $color=\"WHITE\" $align=\"center\">\n {title}\n </Text>\n )}\n {onCross && (\n <Styled.HeaderIconContainer>\n <CrossIcon color=\"#fff\" onClick={onCross} />\n </Styled.HeaderIconContainer>\n )}\n </Styled.GameTutorialHeader>\n )}\n\n <Styled.GameTutorialContainer>\n <Styled.VideoContainer>\n <video\n loop={true}\n autoPlay={true}\n muted={true}\n src={src}\n onTimeUpdate={onProgress}\n disablePictureInPicture={true}\n itemType=\"video/mp4\"\n playsInline\n />\n </Styled.VideoContainer>\n </Styled.GameTutorialContainer>\n\n {showProgress && (\n <Styled.VideoProgressWrapper>\n <Styled.VideoProgressContainer>\n {progress > 0 && <Styled.VideoProgress $width={progress} />}\n </Styled.VideoProgressContainer>\n </Styled.VideoProgressWrapper>\n )}\n </Styled.GameTutorialWrapper>\n );\n};\n"],"names":["Tutorial","src","title","onCross","showProgress","onTutorialPlayedOnce","progress","setProgress","useState","hasVideoEnded","useRef","onProgress","useCallback","e","p","jsxs","Styled.GameTutorialWrapper","Styled.GameTutorialHeader","jsx","Text","Styled.HeaderIconContainer","CrossIcon","Styled.GameTutorialContainer","Styled.VideoContainer","Styled.VideoProgressWrapper","Styled.VideoProgressContainer","Styled.VideoProgress"],"mappings":";;;;;AASO,MAAMA,IAAW,CAAC;AAAA,EACvB,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,sBAAAC;AACF,MAAsB;AACpB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAC,GACpCC,IAAgBC,EAAO,EAAK,GAE5BC,IAAaC;AAAA,IACjB,CAACC,MAAqC;AAC9B,YAAAC,KAAMD,EAAE,OAAO,eAAe,MAAMA,EAAE,OAAO,YAAY,KAAM;AAErE,MAAIC,KAAK,MAAM,CAACL,EAAc,YAC5BA,EAAc,UAAU,IACDJ,KAAA,QAAAA,MAGzBE,EAAYO,CAAC;AAAA,IACf;AAAA,IACA,CAACT,CAAoB;AAAA,EAAA;AAIrB,SAAA,gBAAAU,EAACC,GAAA,EACG,UAAA;AAAA,KAAAd,KAASC,MACT,gBAAAY,EAACE,GAAA,EACE,UAAA;AAAA,MACCf,KAAA,gBAAAgB,EAACC,KAAK,WAAU,OAAM,QAAO,SAAQ,QAAO,UACzC,UACHjB,EAAA,CAAA;AAAA,MAEDC,KACE,gBAAAe,EAAAE,GAAA,EACC,UAAC,gBAAAF,EAAAG,GAAA,EAAU,OAAM,QAAO,SAASlB,EAAA,CAAS,EAC5C,CAAA;AAAA,IAAA,GAEJ;AAAA,sBAGDmB,GAAA,EACC,UAAC,gBAAAJ,EAAAK,GAAA,EACC,UAAA,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,QACP,KAAAjB;AAAA,QACA,cAAcU;AAAA,QACd,yBAAyB;AAAA,QACzB,UAAS;AAAA,QACT,aAAW;AAAA,MAAA;AAAA,OAEf,EACF,CAAA;AAAA,IAECP,KACE,gBAAAc,EAAAM,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EACE,UAAWnB,IAAA,uBAAMoB,GAAA,EAAqB,QAAQpB,EAAU,CAAA,EAC3D,CAAA,GACF;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { jsx as e, jsxs as l } from "react/jsx-runtime";
|
2
|
+
import { memo as $ } from "react";
|
3
|
+
import { CardOptions as c, CardOptionWrapper as m, OptionText as d } from "./styles.js";
|
4
|
+
const h = $(({ options: o, className: n }) => o.length === 0 ? null : /* @__PURE__ */ e(
|
5
|
+
c,
|
6
|
+
{
|
7
|
+
className: n,
|
8
|
+
$background: "BLACK_2",
|
9
|
+
$borderColor: "WHITE_T_38",
|
10
|
+
$gapX: 0.5,
|
11
|
+
children: o.map(({ icon: i, label: p, id: t, disabled: r, onClick: a }) => /* @__PURE__ */ l(
|
12
|
+
m,
|
13
|
+
{
|
14
|
+
$flexDirection: "row",
|
15
|
+
$alignItems: "center",
|
16
|
+
$flexGap: 8,
|
17
|
+
$gapX: 0.5,
|
18
|
+
$gutterX: 1,
|
19
|
+
$opacity: r ? 0.5 : 1,
|
20
|
+
$disabled: r,
|
21
|
+
onClick: () => {
|
22
|
+
r || a(t);
|
23
|
+
},
|
24
|
+
children: [
|
25
|
+
/* @__PURE__ */ e(i, { width: 20, height: 20 }),
|
26
|
+
/* @__PURE__ */ e(d, { $renderAs: "ub3", $color: "WHITE", children: p })
|
27
|
+
]
|
28
|
+
},
|
29
|
+
t
|
30
|
+
))
|
31
|
+
}
|
32
|
+
));
|
33
|
+
export {
|
34
|
+
h as default
|
35
|
+
};
|
36
|
+
//# sourceMappingURL=card-menu-options.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"card-menu-options.js","sources":["../../../src/features/homework/card-menu-options.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nimport { memo } from 'react';\n\nimport * as Styled from './styles';\n\nexport interface ICardMenuOption {\n id: string;\n label: string;\n icon: FC<SVGProps<SVGSVGElement>>;\n onClick: (id: string) => void;\n disabled: boolean;\n}\n\nexport interface ICardMenuOptionsProps {\n options: ICardMenuOption[];\n className?: string;\n}\n\nconst CardMenuOptions: FC<ICardMenuOptionsProps> = memo(({ options, className }) => {\n if (options.length === 0) return null;\n\n return (\n <Styled.CardOptions\n className={className}\n $background=\"BLACK_2\"\n $borderColor=\"WHITE_T_38\"\n $gapX={0.5}\n >\n {options.map(({ icon: OptionIcon, label, id, disabled, onClick }) => (\n <Styled.CardOptionWrapper\n key={id}\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $flexGap={8}\n $gapX={0.5}\n $gutterX={1}\n $opacity={disabled ? 0.5 : 1}\n $disabled={disabled}\n onClick={() => {\n if (!disabled) {\n onClick(id);\n }\n }}\n >\n <OptionIcon width={20} height={20} />\n <Styled.OptionText $renderAs=\"ub3\" $color=\"WHITE\">\n {label}\n </Styled.OptionText>\n </Styled.CardOptionWrapper>\n ))}\n </Styled.CardOptions>\n );\n});\n\nexport default CardMenuOptions;\n"],"names":["CardMenuOptions","memo","options","className","jsx","Styled.CardOptions","OptionIcon","label","id","disabled","onClick","jsxs","Styled.CardOptionWrapper","Styled.OptionText"],"mappings":";;;AAmBA,MAAMA,IAA6CC,EAAK,CAAC,EAAE,SAAAC,GAAS,WAAAC,QAC9DD,EAAQ,WAAW,IAAU,OAG/B,gBAAAE;AAAA,EAACC;AAAAA,EAAA;AAAA,IACC,WAAAF;AAAA,IACA,aAAY;AAAA,IACZ,cAAa;AAAA,IACb,OAAO;AAAA,IAEN,UAAAD,EAAQ,IAAI,CAAC,EAAE,MAAMI,GAAY,OAAAC,GAAO,IAAAC,GAAI,UAAAC,GAAU,SAAAC,EACrD,MAAA,gBAAAC;AAAA,MAACC;AAAAA,MAAA;AAAA,QAEC,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,UAAU;AAAA,QACV,UAAUH,IAAW,MAAM;AAAA,QAC3B,WAAWA;AAAA,QACX,SAAS,MAAM;AACb,UAAKA,KACHC,EAAQF,CAAE;AAAA,QAEd;AAAA,QAEA,UAAA;AAAA,UAAA,gBAAAJ,EAACE,GAAW,EAAA,OAAO,IAAI,QAAQ,IAAI;AAAA,UACnC,gBAAAF,EAACS,GAAA,EAAkB,WAAU,OAAM,QAAO,SACvC,UACHN,GAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAjBKC;AAAA,IAAA,CAmBR;AAAA,EAAA;AAAA,CAGN;"}
|