@cuemath/leap 3.2.17-mb → 3.2.17-node-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.
- package/dist/assets/line-icons/icons/cue-board-filled.js +33 -0
- package/dist/assets/line-icons/icons/cue-board-filled.js.map +1 -0
- package/dist/assets/line-icons/icons/cue-board.js +23 -0
- package/dist/assets/line-icons/icons/cue-board.js.map +1 -0
- package/dist/assets/line-icons/icons/hint-fill.js +35 -0
- package/dist/assets/line-icons/icons/hint-fill.js.map +1 -0
- package/dist/assets/line-icons/icons/screen-grab-filled.js +35 -0
- package/dist/assets/line-icons/icons/screen-grab-filled.js.map +1 -0
- package/dist/assets/line-icons/icons/screen-grab.js +23 -0
- package/dist/assets/line-icons/icons/screen-grab.js.map +1 -0
- package/dist/assets/line-icons/icons/sticker-filled.js +64 -0
- package/dist/assets/line-icons/icons/sticker-filled.js.map +1 -0
- package/dist/assets/line-icons/icons/sticker.js +46 -0
- package/dist/assets/line-icons/icons/sticker.js.map +1 -0
- package/dist/assets/lottie/lottie.js +1 -1
- package/dist/assets/lottie/lottie.js.map +1 -1
- package/dist/features/auth/account-selector/account-selector.js +26 -25
- package/dist/features/auth/account-selector/account-selector.js.map +1 -1
- package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js +15 -14
- package/dist/features/auth/comps/auth-page-layout/auth-page-layout.js.map +1 -1
- package/dist/features/auth/comps/user-list/user-item/user-item.js +30 -31
- package/dist/features/auth/comps/user-list/user-item/user-item.js.map +1 -1
- package/dist/features/auth/comps/user-list/user-list.js +35 -34
- package/dist/features/auth/comps/user-list/user-list.js.map +1 -1
- package/dist/features/auth/forgot-password/forgot-password-styled.js +14 -15
- package/dist/features/auth/forgot-password/forgot-password-styled.js.map +1 -1
- package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js +6 -7
- package/dist/features/auth/login/identifier-otp-form/identifier-otp-form-styled.js.map +1 -1
- package/dist/features/auth/login/login-styled.js +8 -9
- package/dist/features/auth/login/login-styled.js.map +1 -1
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +19 -12
- package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -1
- package/dist/features/chapters-v2/constants/block-constants.js +3 -2
- package/dist/features/chapters-v2/constants/block-constants.js.map +1 -1
- package/dist/features/chapters-v2/utils/index.js +6 -4
- package/dist/features/chapters-v2/utils/index.js.map +1 -1
- package/dist/features/chapters-v2/utils/node-card-utils.js +11 -7
- package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js +4 -4
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card-styled.js.map +1 -1
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js +85 -85
- package/dist/features/circle-games/game-launcher/comps/tables-card/tables-card.js.map +1 -1
- package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js +121 -98
- package/dist/features/circle-games/game-launcher/hooks/use-game-launcher-journey/use-game-launcher-journey.js.map +1 -1
- package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js +29 -28
- package/dist/features/circle-games/game-launcher/hooks/use-table-infinite-launcher-journey/use-table-infinite-launcher-journey.js.map +1 -1
- package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js +43 -42
- package/dist/features/circle-games/game-launcher/hooks/use-table-launcher-journey/use-table-launcher-journey.js.map +1 -1
- package/dist/features/circle-games/games/tutorial/tutorial.js +43 -35
- package/dist/features/circle-games/games/tutorial/tutorial.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js +2 -2
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input-styled.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js +1 -1
- package/dist/features/circle-games/sign-up/comp/grade-input/grade-input.js.map +1 -1
- package/dist/features/circle-games/sign-up/comp/username-input/username-input.js +26 -24
- package/dist/features/circle-games/sign-up/comp/username-input/username-input.js.map +1 -1
- package/dist/features/circle-games/sign-up/constants.js +3 -1
- package/dist/features/circle-games/sign-up/constants.js.map +1 -1
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +42 -42
- package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
- package/dist/features/journey/comps/coachmark/coachmark.js +29 -27
- package/dist/features/journey/comps/coachmark/coachmark.js.map +1 -1
- package/dist/features/journey/journey-id/journey-id-student.js +2 -2
- package/dist/features/journey/journey-id/journey-id-student.js.map +1 -1
- package/dist/features/journey/use-journey/journey-context-provider.js +73 -72
- package/dist/features/journey/use-journey/journey-context-provider.js.map +1 -1
- package/dist/features/journey/use-journey/journey-styled.js +6 -4
- package/dist/features/journey/use-journey/journey-styled.js.map +1 -1
- package/dist/features/puzzles/app/puzzle-app-styled.js +81 -0
- package/dist/features/puzzles/app/puzzle-app-styled.js.map +1 -0
- package/dist/features/puzzles/app/puzzle-app-view.js +120 -0
- package/dist/features/puzzles/app/puzzle-app-view.js.map +1 -0
- package/dist/features/puzzles/app/puzzle-app.js +62 -0
- package/dist/features/puzzles/app/puzzle-app.js.map +1 -0
- package/dist/features/sheets/constants/sheet.js +2 -1
- package/dist/features/sheets/constants/sheet.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js +6 -0
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-constants.js.map +1 -0
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js +12 -60
- package/dist/features/ui/arrow-tooltip/arrow-tooltip-styled.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +72 -77
- package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
- package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js +63 -0
- package/dist/features/ui/arrow-tooltip/comps/tooltip-body-styled.js.map +1 -0
- package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js +21 -0
- package/dist/features/ui/arrow-tooltip/comps/tooltip-body.js.map +1 -0
- package/dist/features/ui/error/error.js +65 -27
- package/dist/features/ui/error/error.js.map +1 -1
- package/dist/features/ui/lottie-animation/lottie-animation.js +25 -29
- package/dist/features/ui/lottie-animation/lottie-animation.js.map +1 -1
- package/dist/features/ui/modals/modal-styled.js +34 -58
- package/dist/features/ui/modals/modal-styled.js.map +1 -1
- package/dist/features/ui/modals/modal.js +40 -14
- package/dist/features/ui/modals/modal.js.map +1 -1
- package/dist/features/ui/nudge/nudge-styled.js +14 -7
- package/dist/features/ui/nudge/nudge-styled.js.map +1 -1
- package/dist/features/ui/nudge/nudge.js +13 -12
- package/dist/features/ui/nudge/nudge.js.map +1 -1
- package/dist/features/{stickers/sticker-selector/sticker-selector-styles.js → ui/sticker-grid/sticker-grid-styles.js} +3 -4
- package/dist/features/ui/sticker-grid/sticker-grid-styles.js.map +1 -0
- package/dist/features/ui/sticker-grid/sticker-grid.js +24 -0
- package/dist/features/ui/sticker-grid/sticker-grid.js.map +1 -0
- package/dist/features/ui/sticker-grid/sticker.js +57 -0
- package/dist/features/ui/sticker-grid/sticker.js.map +1 -0
- package/dist/features/ui/stickers/constants.js +6 -0
- package/dist/features/ui/stickers/constants.js.map +1 -0
- package/dist/features/{stickers/stickers-effects/effects.js → ui/stickers/stickers-effects.js} +6 -6
- package/dist/features/ui/stickers/stickers-effects.js.map +1 -0
- package/dist/features/{stickers/stickers-effects/stickers-effects-styled.js → ui/stickers/stickers-styled.js} +2 -2
- package/dist/features/ui/stickers/stickers-styled.js.map +1 -0
- package/dist/features/{stickers/stickers-effects/stickers-effects-utils.js → ui/stickers/stickers-utils.js} +6 -6
- package/dist/features/ui/stickers/stickers-utils.js.map +1 -0
- package/dist/features/ui/stickers/stickers.js +40 -0
- package/dist/features/ui/stickers/stickers.js.map +1 -0
- package/dist/features/ui/streak-icon/streak-icon-styled.js +13 -13
- package/dist/features/ui/streak-icon/streak-icon-styled.js.map +1 -1
- package/dist/features/ui/streak-icon/streak-icon.js +17 -15
- package/dist/features/ui/streak-icon/streak-icon.js.map +1 -1
- package/dist/features/ui/text/text.js +40 -36
- package/dist/features/ui/text/text.js.map +1 -1
- package/dist/features/ui/theme/constants.js +4 -2
- package/dist/features/ui/theme/constants.js.map +1 -1
- package/dist/features/ui/theme/get-device.js +3 -3
- package/dist/features/ui/theme/get-device.js.map +1 -1
- package/dist/features/worksheet/worksheet/constants.js +12 -13
- package/dist/features/worksheet/worksheet/constants.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +24 -24
- package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js +246 -260
- package/dist/features/worksheet/worksheet/worksheet-question/worksheet-question.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-styled.js +37 -28
- package/dist/features/worksheet/worksheet/worksheet-styled.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet.js +166 -164
- package/dist/features/worksheet/worksheet/worksheet.js.map +1 -1
- package/dist/index.d.ts +68 -53
- package/dist/index.js +547 -533
- package/dist/index.js.map +1 -1
- package/dist/static/nudge-tap.0591aef4.json +1 -0
- package/package.json +1 -1
- package/dist/features/hooks/use-viewport/use-viewport.js +0 -22
- package/dist/features/hooks/use-viewport/use-viewport.js.map +0 -1
- package/dist/features/stickers/sticker-data.js +0 -234
- package/dist/features/stickers/sticker-data.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker-selector-styles.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker-selector.js +0 -25
- package/dist/features/stickers/sticker-selector/sticker-selector.js.map +0 -1
- package/dist/features/stickers/sticker-selector/sticker.js +0 -57
- package/dist/features/stickers/sticker-selector/sticker.js.map +0 -1
- package/dist/features/stickers/stickers-effects/effects.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects-styled.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects-utils.js.map +0 -1
- package/dist/features/stickers/stickers-effects/stickers-effects.js +0 -39
- package/dist/features/stickers/stickers-effects/stickers-effects.js.map +0 -1
- package/dist/static/nudge-tap.5cb30093.json +0 -1057
@@ -1,50 +1,49 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { memo as
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import {
|
8
|
-
|
9
|
-
const T = ({
|
1
|
+
import { jsxs as h, jsx as t } from "react/jsx-runtime";
|
2
|
+
import { memo as g, useCallback as A } from "react";
|
3
|
+
import u from "../../../../ui/avatar/avatar.js";
|
4
|
+
import C from "../../../../ui/separator/separator.js";
|
5
|
+
import I from "../../../../ui/text/text.js";
|
6
|
+
import { AVATAR_CONFIGURATIONS as m } from "../user-list-constants.js";
|
7
|
+
import { UserItemCard as b } from "./user-item-styled.js";
|
8
|
+
const d = ({
|
10
9
|
id: r,
|
11
|
-
phone:
|
12
|
-
username:
|
10
|
+
phone: n,
|
11
|
+
username: s,
|
13
12
|
avatar: i,
|
14
|
-
index:
|
13
|
+
index: e,
|
15
14
|
isLastItem: c,
|
16
|
-
onSelect:
|
17
|
-
avatarSize:
|
18
|
-
maxColumns:
|
19
|
-
cardSize:
|
15
|
+
onSelect: o,
|
16
|
+
avatarSize: l,
|
17
|
+
maxColumns: $,
|
18
|
+
cardSize: a
|
20
19
|
}) => {
|
21
|
-
const
|
22
|
-
|
23
|
-
}, [r,
|
24
|
-
return /* @__PURE__ */
|
25
|
-
|
20
|
+
const p = A(() => {
|
21
|
+
o(r);
|
22
|
+
}, [r, o]), f = i ?? m[e % m.length];
|
23
|
+
return /* @__PURE__ */ h(
|
24
|
+
b,
|
26
25
|
{
|
27
|
-
onClick:
|
28
|
-
maxColumns:
|
26
|
+
onClick: p,
|
27
|
+
maxColumns: $,
|
29
28
|
$gutterX: 1.5,
|
30
29
|
$gapX: 1.5,
|
31
|
-
$width:
|
32
|
-
$height:
|
30
|
+
$width: a,
|
31
|
+
$height: a,
|
33
32
|
$alignItems: "center",
|
34
33
|
$justifyContent: "center",
|
35
|
-
index:
|
34
|
+
index: e,
|
36
35
|
isLastItem: c,
|
37
36
|
$background: "BLACK_1",
|
38
37
|
children: [
|
39
|
-
/* @__PURE__ */ t(
|
40
|
-
/* @__PURE__ */ t(
|
41
|
-
/* @__PURE__ */ t(
|
38
|
+
/* @__PURE__ */ t(u, { size: l, avatar: f }),
|
39
|
+
/* @__PURE__ */ t(C, { heightX: 0.5 }),
|
40
|
+
/* @__PURE__ */ t(I, { $color: "WHITE", $renderOnTabletAs: "ab3", $renderAs: "ab2", $align: "center", children: s || n })
|
42
41
|
]
|
43
42
|
},
|
44
43
|
r
|
45
44
|
);
|
46
|
-
},
|
45
|
+
}, X = g(d);
|
47
46
|
export {
|
48
|
-
|
47
|
+
X as default
|
49
48
|
};
|
50
49
|
//# sourceMappingURL=user-item.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"user-item.js","sources":["../../../../../../src/features/auth/comps/user-list/user-item/user-item.tsx"],"sourcesContent":["import type { IUserItemProps } from './user-item-types';\n\nimport { useCallback, type FC, memo } from 'react';\n\nimport
|
1
|
+
{"version":3,"file":"user-item.js","sources":["../../../../../../src/features/auth/comps/user-list/user-item/user-item.tsx"],"sourcesContent":["import type { IUserItemProps } from './user-item-types';\n\nimport { useCallback, type FC, memo } from 'react';\n\nimport Avatar from '../../../../ui/avatar/avatar';\nimport Separator from '../../../../ui/separator/separator';\nimport Text from '../../../../ui/text/text';\nimport { AVATAR_CONFIGURATIONS } from '../user-list-constants';\nimport * as Styled from './user-item-styled';\n\nconst UserItem: FC<IUserItemProps> = ({\n id,\n phone,\n username,\n avatar,\n index,\n isLastItem,\n onSelect,\n avatarSize,\n maxColumns,\n cardSize,\n}) => {\n const handleClick = useCallback(() => {\n onSelect(id);\n }, [id, onSelect]);\n\n const avatarSource = avatar ?? AVATAR_CONFIGURATIONS[index % AVATAR_CONFIGURATIONS.length];\n\n return (\n <Styled.UserItemCard\n key={id}\n onClick={handleClick}\n maxColumns={maxColumns}\n $gutterX={1.5}\n $gapX={1.5}\n $width={cardSize}\n $height={cardSize}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n index={index}\n isLastItem={isLastItem}\n $background=\"BLACK_1\"\n >\n <Avatar size={avatarSize} avatar={avatarSource} />\n <Separator heightX={0.5} />\n <Text $color=\"WHITE\" $renderOnTabletAs=\"ab3\" $renderAs=\"ab2\" $align=\"center\">\n {username || phone}\n </Text>\n </Styled.UserItemCard>\n );\n};\n\nexport default memo(UserItem);\n"],"names":["UserItem","id","phone","username","avatar","index","isLastItem","onSelect","avatarSize","maxColumns","cardSize","handleClick","useCallback","avatarSource","AVATAR_CONFIGURATIONS","jsxs","Styled.UserItemCard","jsx","Avatar","Separator","Text","UserItem$1","memo"],"mappings":";;;;;;;AAUA,MAAMA,IAA+B,CAAC;AAAA,EACpC,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AACF,MAAM;AACE,QAAAC,IAAcC,EAAY,MAAM;AACpC,IAAAL,EAASN,CAAE;AAAA,EAAA,GACV,CAACA,GAAIM,CAAQ,CAAC,GAEXM,IAAeT,KAAUU,EAAsBT,IAAQS,EAAsB,MAAM;AAGvF,SAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MAEC,SAASL;AAAA,MACT,YAAAF;AAAA,MACA,UAAU;AAAA,MACV,OAAO;AAAA,MACP,QAAQC;AAAA,MACR,SAASA;AAAA,MACT,aAAY;AAAA,MACZ,iBAAgB;AAAA,MAChB,OAAAL;AAAA,MACA,YAAAC;AAAA,MACA,aAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAW,EAACC,GAAO,EAAA,MAAMV,GAAY,QAAQK,GAAc;AAAA,QAChD,gBAAAI,EAACE,GAAU,EAAA,SAAS,IAAK,CAAA;AAAA,QACzB,gBAAAF,EAACG,GAAK,EAAA,QAAO,SAAQ,mBAAkB,OAAM,WAAU,OAAM,QAAO,UACjE,UAAAjB,KAAYD,EACf,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAjBKD;AAAA,EAAA;AAoBX,GAEeoB,IAAAC,EAAKtB,CAAQ;"}
|
@@ -1,49 +1,50 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { memo as
|
3
|
-
import
|
4
|
-
import I from "
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
|
1
|
+
import { jsxs as g, jsx as e } from "react/jsx-runtime";
|
2
|
+
import { memo as x } from "react";
|
3
|
+
import { useTheme as L } from "styled-components";
|
4
|
+
import I from "../../../../assets/line-icons/icons/plus.js";
|
5
|
+
import v from "../../../ui/layout/flex-view.js";
|
6
|
+
import { EDeviceType as T } from "../../../ui/theme/constants.js";
|
7
|
+
import U from "./user-item/user-item.js";
|
8
|
+
import { UserListWrapper as j, AddAccountButton as w } from "./user-list-styled.js";
|
9
|
+
const A = ({
|
9
10
|
users: s,
|
10
|
-
onSelect:
|
11
|
+
onSelect: a,
|
11
12
|
showAddButton: i = !1,
|
12
|
-
onAddNew:
|
13
|
-
maxColumns:
|
14
|
-
cardSize:
|
15
|
-
avatarSize:
|
13
|
+
onAddNew: p,
|
14
|
+
maxColumns: l = 5,
|
15
|
+
cardSize: h = 200,
|
16
|
+
avatarSize: u = 80
|
16
17
|
}) => {
|
17
|
-
const
|
18
|
-
return /* @__PURE__ */
|
19
|
-
|
18
|
+
const o = s.length + (i ? 1 : 0), { device: d } = L(), m = d <= T.TABLET, r = m ? 2 : l, t = m ? 180 : h;
|
19
|
+
return /* @__PURE__ */ g(
|
20
|
+
j,
|
20
21
|
{
|
21
|
-
itemCount:
|
22
|
-
maxColumns:
|
22
|
+
itemCount: o,
|
23
|
+
maxColumns: r,
|
23
24
|
cardWidth: t,
|
24
25
|
children: [
|
25
|
-
s.map(({ id: n, username:
|
26
|
-
|
26
|
+
s.map(({ id: n, username: f, user_avatar: C, phone: $ }, c) => /* @__PURE__ */ e(
|
27
|
+
U,
|
27
28
|
{
|
28
29
|
id: n,
|
29
|
-
onSelect:
|
30
|
+
onSelect: a,
|
30
31
|
cardSize: t,
|
31
|
-
index:
|
32
|
-
maxColumns:
|
33
|
-
avatarSize:
|
32
|
+
index: c,
|
33
|
+
maxColumns: r,
|
34
|
+
avatarSize: u,
|
34
35
|
avatar: C,
|
35
|
-
phone:
|
36
|
-
username:
|
37
|
-
isLastItem:
|
36
|
+
phone: $,
|
37
|
+
username: f,
|
38
|
+
isLastItem: c === o - 1
|
38
39
|
},
|
39
40
|
n
|
40
41
|
)),
|
41
|
-
i && /* @__PURE__ */
|
42
|
-
|
42
|
+
i && /* @__PURE__ */ e(
|
43
|
+
w,
|
43
44
|
{
|
44
45
|
isLastItem: !0,
|
45
|
-
index:
|
46
|
-
maxColumns:
|
46
|
+
index: o,
|
47
|
+
maxColumns: r,
|
47
48
|
$gutterX: 5,
|
48
49
|
$gapX: 5,
|
49
50
|
$background: "BLACK_3",
|
@@ -51,14 +52,14 @@ const v = ({
|
|
51
52
|
$height: t,
|
52
53
|
$alignItems: "center",
|
53
54
|
$justifyContent: "center",
|
54
|
-
onClick:
|
55
|
-
children: /* @__PURE__ */
|
55
|
+
onClick: p,
|
56
|
+
children: /* @__PURE__ */ e(v, { $width: 40, $height: 40, children: /* @__PURE__ */ e(I, { color: "WHITE", width: 40, height: 40 }) })
|
56
57
|
}
|
57
58
|
)
|
58
59
|
]
|
59
60
|
}
|
60
61
|
);
|
61
|
-
}, _ =
|
62
|
+
}, _ = x(A);
|
62
63
|
export {
|
63
64
|
_ as default
|
64
65
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"user-list.js","sources":["../../../../../src/features/auth/comps/user-list/user-list.tsx"],"sourcesContent":["import type { IUserListProps } from './user-list-types';\n\nimport { type FC, memo } from 'react';\n\nimport PlusIcon from '../../../../assets/line-icons/icons/plus';\nimport
|
1
|
+
{"version":3,"file":"user-list.js","sources":["../../../../../src/features/auth/comps/user-list/user-list.tsx"],"sourcesContent":["import type { IUserListProps } from './user-list-types';\n\nimport { type FC, memo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport PlusIcon from '../../../../assets/line-icons/icons/plus';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { EDeviceType } from '../../../ui/theme/constants';\nimport UserItem from './user-item/user-item';\nimport * as Styled from './user-list-styled';\n\nconst UserList: FC<IUserListProps> = ({\n users,\n onSelect,\n showAddButton = false,\n onAddNew,\n maxColumns = 5,\n cardSize = 200,\n avatarSize = 80,\n}) => {\n const totalCards = users.length + (showAddButton ? 1 : 0);\n const { device } = useTheme();\n const isCompact = device <= EDeviceType.TABLET;\n\n const responsiveColumnNos = isCompact ? 2 : maxColumns;\n const responsiveCardSize = isCompact ? 180 : cardSize;\n\n return (\n <Styled.UserListWrapper\n itemCount={totalCards}\n maxColumns={responsiveColumnNos}\n cardWidth={responsiveCardSize}\n >\n {users.map(({ id, username, user_avatar: avatar, phone }, index) => (\n <UserItem\n key={id}\n id={id}\n onSelect={onSelect}\n cardSize={responsiveCardSize}\n index={index}\n maxColumns={responsiveColumnNos}\n avatarSize={avatarSize}\n avatar={avatar}\n phone={phone}\n username={username}\n isLastItem={index === totalCards - 1}\n />\n ))}\n\n {showAddButton && (\n <Styled.AddAccountButton\n isLastItem\n index={totalCards}\n maxColumns={responsiveColumnNos}\n $gutterX={5}\n $gapX={5}\n $background=\"BLACK_3\"\n $width={responsiveCardSize}\n $height={responsiveCardSize}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n onClick={onAddNew}\n >\n <FlexView $width={40} $height={40}>\n <PlusIcon color=\"WHITE\" width={40} height={40} />\n </FlexView>\n </Styled.AddAccountButton>\n )}\n </Styled.UserListWrapper>\n );\n};\n\nexport default memo(UserList);\n"],"names":["UserList","users","onSelect","showAddButton","onAddNew","maxColumns","cardSize","avatarSize","totalCards","device","useTheme","isCompact","EDeviceType","responsiveColumnNos","responsiveCardSize","jsxs","Styled.UserListWrapper","id","username","avatar","phone","index","jsx","UserItem","Styled.AddAccountButton","FlexView","PlusIcon","UserList$1","memo"],"mappings":";;;;;;;;AAWA,MAAMA,IAA+B,CAAC;AAAA,EACpC,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,UAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,UAAAC,IAAW;AAAA,EACX,YAAAC,IAAa;AACf,MAAM;AACJ,QAAMC,IAAaP,EAAM,UAAUE,IAAgB,IAAI,IACjD,EAAE,QAAAM,MAAWC,KACbC,IAAYF,KAAUG,EAAY,QAElCC,IAAsBF,IAAY,IAAIN,GACtCS,IAAqBH,IAAY,MAAML;AAG3C,SAAA,gBAAAS;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWR;AAAA,MACX,YAAYK;AAAA,MACZ,WAAWC;AAAA,MAEV,UAAA;AAAA,QAAMb,EAAA,IAAI,CAAC,EAAE,IAAAgB,GAAI,UAAAC,GAAU,aAAaC,GAAQ,OAAAC,KAASC,MACxD,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YAEC,IAAAN;AAAA,YACA,UAAAf;AAAA,YACA,UAAUY;AAAA,YACV,OAAAO;AAAA,YACA,YAAYR;AAAA,YACZ,YAAAN;AAAA,YACA,QAAAY;AAAA,YACA,OAAAC;AAAA,YACA,UAAAF;AAAA,YACA,YAAYG,MAAUb,IAAa;AAAA,UAAA;AAAA,UAV9BS;AAAA,QAAA,CAYR;AAAA,QAEAd,KACC,gBAAAmB;AAAA,UAACE;AAAAA,UAAA;AAAA,YACC,YAAU;AAAA,YACV,OAAOhB;AAAA,YACP,YAAYK;AAAA,YACZ,UAAU;AAAA,YACV,OAAO;AAAA,YACP,aAAY;AAAA,YACZ,QAAQC;AAAA,YACR,SAASA;AAAA,YACT,aAAY;AAAA,YACZ,iBAAgB;AAAA,YAChB,SAASV;AAAA,YAET,UAAC,gBAAAkB,EAAAG,GAAA,EAAS,QAAQ,IAAI,SAAS,IAC7B,UAAA,gBAAAH,EAACI,GAAS,EAAA,OAAM,SAAQ,OAAO,IAAI,QAAQ,GAAI,CAAA,GACjD;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GAEeC,IAAAC,EAAK5B,CAAQ;"}
|
@@ -1,8 +1,7 @@
|
|
1
|
-
import { styled as
|
2
|
-
import
|
3
|
-
import
|
4
|
-
|
5
|
-
const { mediaQueries: i } = p(), x = t.form`
|
1
|
+
import { styled as e } from "styled-components";
|
2
|
+
import o from "../../ui/buttons/button/button.js";
|
3
|
+
import i from "../../ui/layout/flex-view.js";
|
4
|
+
const n = e.form`
|
6
5
|
display: flex;
|
7
6
|
flex: 1;
|
8
7
|
margin-top: 0;
|
@@ -11,28 +10,28 @@ const { mediaQueries: i } = p(), x = t.form`
|
|
11
10
|
max-width: 336px;
|
12
11
|
width: 100%;
|
13
12
|
height: 308px;
|
14
|
-
${
|
13
|
+
${({ theme: { mediaQueries: t } }) => t.minWidthDesktop} {
|
15
14
|
margin-top: 8px;
|
16
15
|
}
|
17
|
-
`,
|
16
|
+
`, h = e(i)`
|
18
17
|
margin-top: 0;
|
19
18
|
max-width: 336px;
|
20
19
|
width: 100%;
|
21
|
-
${
|
20
|
+
${({ theme: { mediaQueries: t } }) => t.minWidthDesktop} {
|
22
21
|
margin-top: 8px;
|
23
22
|
}
|
24
|
-
`,
|
23
|
+
`, x = e(i)`
|
25
24
|
min-height: 300px;
|
26
|
-
${
|
25
|
+
${({ theme: { mediaQueries: t } }) => t.minWidthDesktop} {
|
27
26
|
height: 308px;
|
28
27
|
}
|
29
|
-
`,
|
28
|
+
`, a = e(o)`
|
30
29
|
width: 100%;
|
31
30
|
`;
|
32
31
|
export {
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
a as ButtonWrapper,
|
33
|
+
x as Container,
|
34
|
+
n as FormWrapper,
|
35
|
+
h as OtpFormWrapper
|
37
36
|
};
|
38
37
|
//# sourceMappingURL=forgot-password-styled.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"forgot-password-styled.js","sources":["../../../../src/features/auth/forgot-password/forgot-password-styled.tsx"],"sourcesContent":["import { styled } from 'styled-components';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\
|
1
|
+
{"version":3,"file":"forgot-password-styled.js","sources":["../../../../src/features/auth/forgot-password/forgot-password-styled.tsx"],"sourcesContent":["import { styled } from 'styled-components';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\n\nexport const FormWrapper = styled.form`\n display: flex;\n flex: 1;\n margin-top: 0;\n flex-direction: column;\n justify-content: space-between;\n max-width: 336px;\n width: 100%;\n height: 308px;\n ${({ theme: { mediaQueries } }) => mediaQueries.minWidthDesktop} {\n margin-top: 8px;\n }\n`;\n\nexport const OtpFormWrapper = styled(FlexView)`\n margin-top: 0;\n max-width: 336px;\n width: 100%;\n ${({ theme: { mediaQueries } }) => mediaQueries.minWidthDesktop} {\n margin-top: 8px;\n }\n`;\n\nexport const Container = styled(FlexView)`\n min-height: 300px;\n ${({ theme: { mediaQueries } }) => mediaQueries.minWidthDesktop} {\n height: 308px;\n }\n`;\n\nexport const ButtonWrapper = styled(Button)`\n width: 100%;\n`;\n"],"names":["FormWrapper","styled","mediaQueries","OtpFormWrapper","FlexView","Container","ButtonWrapper","Button"],"mappings":";;;AAKO,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAS9B,CAAC,EAAE,OAAO,EAAE,cAAAC,IAAe,MAAMA,EAAa,eAAe;AAAA;AAAA;AAAA,GAKpDC,IAAiBF,EAAOG,CAAQ;AAAA;AAAA;AAAA;AAAA,IAIzC,CAAC,EAAE,OAAO,EAAE,cAAAF,IAAe,MAAMA,EAAa,eAAe;AAAA;AAAA;AAAA,GAKpDG,IAAYJ,EAAOG,CAAQ;AAAA;AAAA,IAEpC,CAAC,EAAE,OAAO,EAAE,cAAAF,IAAe,MAAMA,EAAa,eAAe;AAAA;AAAA;AAAA,GAKpDI,IAAgBL,EAAOM,CAAM;AAAA;AAAA;"}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import e from "styled-components";
|
2
2
|
import i from "../../../ui/layout/flex-view.js";
|
3
|
-
|
4
|
-
const { mediaQueries: t } = o(), n = e.form`
|
3
|
+
const m = e.form`
|
5
4
|
display: flex;
|
6
5
|
flex-direction: column;
|
7
6
|
justify-content: space-between;
|
@@ -9,17 +8,17 @@ const { mediaQueries: t } = o(), n = e.form`
|
|
9
8
|
flex: 1;
|
10
9
|
width: 100%;
|
11
10
|
max-width: 336px;
|
12
|
-
${t.minWidthDesktop} {
|
11
|
+
${({ theme: { mediaQueries: t } }) => t.minWidthDesktop} {
|
13
12
|
margin-top: 8px;
|
14
13
|
}
|
15
|
-
`,
|
14
|
+
`, n = e(i)`
|
16
15
|
height: 300px;
|
17
|
-
${t.minWidthDesktop} {
|
16
|
+
${({ theme: { mediaQueries: t } }) => t.minWidthDesktop} {
|
18
17
|
height: 308px;
|
19
18
|
}
|
20
19
|
`;
|
21
20
|
export {
|
22
|
-
|
23
|
-
|
21
|
+
n as Container,
|
22
|
+
m as FormWrapper
|
24
23
|
};
|
25
24
|
//# sourceMappingURL=identifier-otp-form-styled.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"identifier-otp-form-styled.js","sources":["../../../../../src/features/auth/login/identifier-otp-form/identifier-otp-form-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\
|
1
|
+
{"version":3,"file":"identifier-otp-form-styled.js","sources":["../../../../../src/features/auth/login/identifier-otp-form/identifier-otp-form-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\n\nconst FormWrapper = styled.form`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-top: 0;\n flex: 1;\n width: 100%;\n max-width: 336px;\n ${({ theme: { mediaQueries } }) => mediaQueries.minWidthDesktop} {\n margin-top: 8px;\n }\n`;\n\nconst Container = styled(FlexView)`\n height: 300px;\n ${({ theme: { mediaQueries } }) => mediaQueries.minWidthDesktop} {\n height: 308px;\n }\n`;\n\nexport { FormWrapper, Container };\n"],"names":["FormWrapper","styled","mediaQueries","Container","FlexView"],"mappings":";;AAIA,MAAMA,IAAcC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQvB,CAAC,EAAE,OAAO,EAAE,cAAAC,IAAe,MAAMA,EAAa,eAAe;AAAA;AAAA;AAAA,GAK3DC,IAAYF,EAAOG,CAAQ;AAAA;AAAA,IAE7B,CAAC,EAAE,OAAO,EAAE,cAAAF,IAAe,MAAMA,EAAa,eAAe;AAAA;AAAA;AAAA;"}
|
@@ -1,26 +1,25 @@
|
|
1
|
-
import
|
1
|
+
import i from "styled-components";
|
2
2
|
import o from "../../ui/buttons/button/button.js";
|
3
3
|
import m from "../../ui/layout/flex-view.js";
|
4
|
-
|
5
|
-
const { mediaQueries: i } = e(), x = t.form`
|
4
|
+
const n = i.form`
|
6
5
|
max-width: 336px;
|
7
6
|
width: 100%;
|
8
7
|
margin-top: 0;
|
9
|
-
${
|
8
|
+
${({ theme: { mediaQueries: t } }) => t.minWidthDesktop} {
|
10
9
|
margin-top: 8px;
|
11
10
|
}
|
12
11
|
`;
|
13
|
-
|
12
|
+
i(o)`
|
14
13
|
max-width: 160px;
|
15
14
|
`;
|
16
|
-
const
|
15
|
+
const h = i(m)`
|
17
16
|
min-height: 300px;
|
18
|
-
${
|
17
|
+
${({ theme: { mediaQueries: t } }) => t.minWidthDesktop} {
|
19
18
|
height: 308px;
|
20
19
|
}
|
21
20
|
`;
|
22
21
|
export {
|
23
|
-
|
24
|
-
|
22
|
+
h as Container,
|
23
|
+
n as FormContainer
|
25
24
|
};
|
26
25
|
//# sourceMappingURL=login-styled.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"login-styled.js","sources":["../../../../src/features/auth/login/login-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\
|
1
|
+
{"version":3,"file":"login-styled.js","sources":["../../../../src/features/auth/login/login-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nimport Button from '../../ui/buttons/button/button';\nimport FlexView from '../../ui/layout/flex-view';\n\nexport const FormContainer = styled.form`\n max-width: 336px;\n width: 100%;\n margin-top: 0;\n ${({ theme: { mediaQueries } }) => mediaQueries.minWidthDesktop} {\n margin-top: 8px;\n }\n`;\n\nconst ButtonWrapper = styled(Button)`\n max-width: 160px;\n`;\n\nconst Container = styled(FlexView)`\n min-height: 300px;\n ${({ theme: { mediaQueries } }) => mediaQueries.minWidthDesktop} {\n height: 308px;\n }\n`;\n\nexport { ButtonWrapper, Container };\n"],"names":["FormContainer","styled","mediaQueries","Button","Container","FlexView"],"mappings":";;;AAKO,MAAMA,IAAgBC,EAAO;AAAA;AAAA;AAAA;AAAA,IAIhC,CAAC,EAAE,OAAO,EAAE,cAAAC,IAAe,MAAMA,EAAa,eAAe;AAAA;AAAA;AAAA;AAK3CD,EAAOE,CAAM;AAAA;AAAA;AAI7B,MAAAC,IAAYH,EAAOI,CAAQ;AAAA;AAAA,IAE7B,CAAC,EAAE,OAAO,EAAE,cAAAH,IAAe,MAAMA,EAAa,eAAe;AAAA;AAAA;AAAA;"}
|
@@ -1,16 +1,23 @@
|
|
1
|
-
import { jsx as
|
2
|
-
import { memo as
|
3
|
-
import { getNodeStateBasedTagInfo as
|
4
|
-
import { SheetTagWrapper as
|
5
|
-
const
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
import { jsx as d } from "react/jsx-runtime";
|
2
|
+
import { memo as N } from "react";
|
3
|
+
import { getNodeStateBasedTagInfo as m } from "../../utils/node-card-utils.js";
|
4
|
+
import { SheetTagWrapper as E } from "./node-card-styled.js";
|
5
|
+
const p = [
|
6
|
+
"DYNAMIC",
|
7
|
+
"ASSESSMENT",
|
8
|
+
"CHAPTER_ASSESSMENT",
|
9
|
+
"TURING_ASSESSMENT",
|
10
|
+
"SAT_ENGLISH_ASSESSMENT",
|
11
|
+
"SAT_MATH_ASSESSMENT"
|
12
|
+
], f = N((o) => {
|
13
|
+
const { state: e, accuracy: t, nodeType: S, dueDateTs: a, isStudent: c, isMilestone: r } = o, s = p.includes(S) ? t : void 0, {
|
14
|
+
icon: i,
|
15
|
+
top: n,
|
16
|
+
right: T
|
17
|
+
} = m(e, !!c, s, a, r);
|
18
|
+
return /* @__PURE__ */ d(E, { $top: n, $right: T, children: i });
|
12
19
|
});
|
13
20
|
export {
|
14
|
-
|
21
|
+
f as default
|
15
22
|
};
|
16
23
|
//# sourceMappingURL=node-card-tags.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"node-card-tags.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-tags.tsx"],"sourcesContent":["import type { INodeCardTagsProps } from './node-card-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport { getNodeStateBasedTagInfo } from '../../utils/node-card-utils';\nimport * as Styled from './node-card-styled';\n\nconst NodeCardTags: FC<INodeCardTagsProps> = memo(props => {\n const { state, accuracy, nodeType, dueDateTs, isStudent, isMilestone } = props;\n
|
1
|
+
{"version":3,"file":"node-card-tags.js","sources":["../../../../../src/features/chapters-v2/comps/node-card/node-card-tags.tsx"],"sourcesContent":["import type { INodeCardTagsProps } from './node-card-types';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport { getNodeStateBasedTagInfo } from '../../utils/node-card-utils';\nimport * as Styled from './node-card-styled';\n\nconst dynamicNodeTypes = [\n 'DYNAMIC',\n 'ASSESSMENT',\n 'CHAPTER_ASSESSMENT',\n 'TURING_ASSESSMENT',\n 'SAT_ENGLISH_ASSESSMENT',\n 'SAT_MATH_ASSESSMENT',\n];\n\nconst NodeCardTags: FC<INodeCardTagsProps> = memo(props => {\n const { state, accuracy, nodeType, dueDateTs, isStudent, isMilestone } = props;\n\n const isDynamicNode = dynamicNodeTypes.includes(nodeType);\n const accuracyValue = isDynamicNode ? accuracy : undefined;\n\n const {\n icon: NodeTagIcon,\n top,\n right,\n } = getNodeStateBasedTagInfo(state, !!isStudent, accuracyValue, dueDateTs, isMilestone);\n\n return (\n <Styled.SheetTagWrapper $top={top} $right={right}>\n {NodeTagIcon}\n </Styled.SheetTagWrapper>\n );\n});\n\nexport default NodeCardTags;\n"],"names":["dynamicNodeTypes","NodeCardTags","memo","props","state","accuracy","nodeType","dueDateTs","isStudent","isMilestone","accuracyValue","NodeTagIcon","top","right","getNodeStateBasedTagInfo","jsx","Styled.SheetTagWrapper"],"mappings":";;;;AAQA,MAAMA,IAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,IAAuCC,EAAK,CAASC,MAAA;AACzD,QAAM,EAAE,OAAAC,GAAO,UAAAC,GAAU,UAAAC,GAAU,WAAAC,GAAW,WAAAC,GAAW,aAAAC,EAAgB,IAAAN,GAGnEO,IADgBV,EAAiB,SAASM,CAAQ,IAClBD,IAAW,QAE3C;AAAA,IACJ,MAAMM;AAAA,IACN,KAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACEC,EAAyBV,GAAO,CAAC,CAACI,GAAWE,GAAeH,GAAWE,CAAW;AAGpF,SAAA,gBAAAM,EAACC,GAAA,EAAuB,MAAMJ,GAAK,QAAQC,GACxC,UACHF,EAAA,CAAA;AAEJ,CAAC;"}
|
@@ -1,4 +1,4 @@
|
|
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.STEP_UP = "STEP_UP", S.CHALLENGE_ARENA = "CHALLENGE_ARENA", S))(A || {});
|
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.STEP_UP = "STEP_UP", S.CHALLENGE_ARENA = "CHALLENGE_ARENA", S.DOWNLOADS = "DOWNLOADS", S))(A || {});
|
2
2
|
const E = {
|
3
3
|
DEFAULT: "Default",
|
4
4
|
PREREQ: "Prerequisite",
|
@@ -13,7 +13,8 @@ const E = {
|
|
13
13
|
PUZZLE_CARDS: "Puzzles",
|
14
14
|
SAT_MOCK_TEST: "SAT Mock Test",
|
15
15
|
STEP_UP: "Step Up",
|
16
|
-
CHALLENGE_ARENA: "Challenge Arena"
|
16
|
+
CHALLENGE_ARENA: "Challenge Arena",
|
17
|
+
DOWNLOADS: "Downloads"
|
17
18
|
};
|
18
19
|
export {
|
19
20
|
E as BLOCK_NAME,
|
@@ -1 +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 STEP_UP = 'STEP_UP',\n CHALLENGE_ARENA = 'CHALLENGE_ARENA',\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 [BLOCK_TYPE.STEP_UP]: 'Step Up',\n [BLOCK_TYPE.CHALLENGE_ARENA]: 'Challenge Arena',\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,iBAChBA,EAAA,UAAU,WACVA,EAAA,kBAAkB,
|
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 STEP_UP = 'STEP_UP',\n CHALLENGE_ARENA = 'CHALLENGE_ARENA',\n DOWNLOADS = 'DOWNLOADS',\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 [BLOCK_TYPE.STEP_UP]: 'Step Up',\n [BLOCK_TYPE.CHALLENGE_ARENA]: 'Challenge Arena',\n [BLOCK_TYPE.DOWNLOADS]: 'Downloads',\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,iBAChBA,EAAA,UAAU,WACVA,EAAA,kBAAkB,mBAClBA,EAAA,YAAY,aAfFA,IAAAA,KAAA,CAAA,CAAA;AA8BL,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;AAAA,EAC3B,SAAqB;AAAA,EACrB,iBAA6B;AAAA,EAC7B,WAAuB;AAC1B;"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { ILLUSTRATIONS as e } from "../../../assets/illustrations/illustrations.js";
|
2
2
|
const A = (E) => {
|
3
3
|
if (!E) return 0;
|
4
|
-
const { mandatory:
|
5
|
-
return _ === 0 ? 0 : Math.floor(
|
4
|
+
const { mandatory: c } = E, { completed: S, total: _ } = c;
|
5
|
+
return _ === 0 ? 0 : Math.floor(S / _ * 100);
|
6
6
|
}, r = (E) => {
|
7
7
|
switch (E) {
|
8
8
|
case "LEVEL2":
|
@@ -47,11 +47,13 @@ const A = (E) => {
|
|
47
47
|
return e.NODE_ACTIVITY_BG;
|
48
48
|
case "VIDEO":
|
49
49
|
return e.NODE_VIDEO_BG;
|
50
|
+
case "PDF":
|
51
|
+
return e.NODE_DOWNLOAD_BG;
|
50
52
|
default:
|
51
53
|
return e.NODE_PROJECT_BG;
|
52
54
|
}
|
53
|
-
}, t = (E,
|
54
|
-
if (!
|
55
|
+
}, t = (E, c, S, _) => {
|
56
|
+
if (!S) return `(${c})`;
|
55
57
|
if (!(E || !_))
|
56
58
|
return `${_}`;
|
57
59
|
};
|
@@ -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 if (total === 0) {\n return 0;\n }\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 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return ILLUSTRATIONS.NODE_TEST_PREP_BG;\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return ILLUSTRATIONS.NODE_LEARN_BG;\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return ILLUSTRATIONS.NODE_RECAP_BG;\n\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return ILLUSTRATIONS.NODE_PRACTICE_BG;\n\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return ILLUSTRATIONS.NODE_PUZZLE_BG;\n\n case 'TURING_SUBJECTIVE':\n return ILLUSTRATIONS.NODE_SUBJECTIVE_BG;\n\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return ILLUSTRATIONS.NODE_ACTIVITY_BG;\n\n case 'VIDEO':\n return ILLUSTRATIONS.NODE_VIDEO_BG;\n\n default:\n return ILLUSTRATIONS.NODE_PROJECT_BG;\n }\n};\n\nconst getSheetNLessonCount = (\n isSkipped: boolean,\n sheetsLength: number,\n isGoalBlock?: boolean,\n lessonIdx?: number,\n) => {\n if (!isGoalBlock) return `(${sheetsLength})`;\n\n if (isSkipped || !lessonIdx) return undefined;\n\n return `${lessonIdx}`;\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;AAE7B,SAAIE,MAAU,IACL,IAGU,KAAK,MAAOD,IAAYC,IAAS,GAAG;AAGzD,GAEMC,IAA0B,CAACC,MAA0C;AACzE,UAAQA,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOC,EAAc;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,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;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,CAACD,EAAoB,QAAA,IAAID,CAAY;AAErC,MAAA,EAAAD,KAAa,CAACG;AAElB,WAAO,GAAGA,CAAS;AACrB;"}
|
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 if (total === 0) {\n return 0;\n }\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 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return ILLUSTRATIONS.NODE_TEST_PREP_BG;\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return ILLUSTRATIONS.NODE_LEARN_BG;\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return ILLUSTRATIONS.NODE_RECAP_BG;\n\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return ILLUSTRATIONS.NODE_CUSTOM_TEST_BG;\n\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return ILLUSTRATIONS.NODE_PRACTICE_BG;\n\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return ILLUSTRATIONS.NODE_PUZZLE_BG;\n\n case 'TURING_SUBJECTIVE':\n return ILLUSTRATIONS.NODE_SUBJECTIVE_BG;\n\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return ILLUSTRATIONS.NODE_ACTIVITY_BG;\n\n case 'VIDEO':\n return ILLUSTRATIONS.NODE_VIDEO_BG;\n\n case 'PDF':\n return ILLUSTRATIONS.NODE_DOWNLOAD_BG;\n\n default:\n return ILLUSTRATIONS.NODE_PROJECT_BG;\n }\n};\n\nconst getSheetNLessonCount = (\n isSkipped: boolean,\n sheetsLength: number,\n isGoalBlock?: boolean,\n lessonIdx?: number,\n) => {\n if (!isGoalBlock) return `(${sheetsLength})`;\n\n if (isSkipped || !lessonIdx) return undefined;\n\n return `${lessonIdx}`;\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;AAE7B,SAAIE,MAAU,IACL,IAGU,KAAK,MAAOD,IAAYC,IAAS,GAAG;AAGzD,GAEMC,IAA0B,CAACC,MAA0C;AACzE,UAAQA,GAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOC,EAAc;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IACvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,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;AACH,aAAOA,EAAc;AAAA,IAEvB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAOA,EAAc;AAAA,IAEvB,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,CAACD,EAAoB,QAAA,IAAID,CAAY;AAErC,MAAA,EAAAD,KAAa,CAACG;AAElB,WAAO,GAAGA,CAAS;AACrB;"}
|
@@ -9,14 +9,14 @@ import E from "../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
9
9
|
import I from "../../ui/text/text.js";
|
10
10
|
import { InProgressIconWrapper as d } from "../comps/node-card/node-card-styled.js";
|
11
11
|
import A from "../comps/tag/tag.js";
|
12
|
-
const
|
12
|
+
const u = 60 * 60 * 24, _ = ["NOT_STARTED"], C = (r, c) => {
|
13
13
|
if (!r || c)
|
14
14
|
return { isOverdue: !1, daysText: "", differenceInDays: 0 };
|
15
|
-
const i = Math.floor(Date.now() / 1e3), s = r - i, o = Math.ceil(s /
|
15
|
+
const i = Math.floor(Date.now() / 1e3), s = r - i, o = Math.ceil(s / u), a = o < 0, n = o > 0 ? `${Math.abs(o)}D` : "";
|
16
16
|
return { isOverdue: a, daysText: n, differenceInDays: o };
|
17
|
-
},
|
17
|
+
}, x = (r, c, i, s, o) => {
|
18
18
|
const { isOverdue: a, daysText: n, differenceInDays: T } = C(s, o);
|
19
|
-
if (!o && a &&
|
19
|
+
if (!o && a && _.includes(r))
|
20
20
|
return {
|
21
21
|
icon: /* @__PURE__ */ e(
|
22
22
|
E,
|
@@ -117,7 +117,7 @@ const _ = 60 * 60 * 24, u = ["NOT_STARTED", "IN_PROGRESS"], C = (r, c) => {
|
|
117
117
|
icon: void 0
|
118
118
|
};
|
119
119
|
}
|
120
|
-
},
|
120
|
+
}, y = (r) => {
|
121
121
|
switch (r) {
|
122
122
|
case "LEVEL2":
|
123
123
|
case "LEVEL3":
|
@@ -179,6 +179,10 @@ const _ = 60 * 60 * 24, u = ["NOT_STARTED", "IN_PROGRESS"], C = (r, c) => {
|
|
179
179
|
return {
|
180
180
|
lottie: t.VIDEO
|
181
181
|
};
|
182
|
+
case "PDF":
|
183
|
+
return {
|
184
|
+
lottie: t.DOWNLOAD
|
185
|
+
};
|
182
186
|
default:
|
183
187
|
return {
|
184
188
|
lottie: t.PROJECT
|
@@ -186,7 +190,7 @@ const _ = 60 * 60 * 24, u = ["NOT_STARTED", "IN_PROGRESS"], C = (r, c) => {
|
|
186
190
|
}
|
187
191
|
};
|
188
192
|
export {
|
189
|
-
|
190
|
-
|
193
|
+
y as getNodeCardBasedIcon,
|
194
|
+
x as getNodeStateBasedTagInfo
|
191
195
|
};
|
192
196
|
//# 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 Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\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 differenceInDays: number;\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, isMilestone?: boolean): DueDateInfo => {\n if (!dueDateTs || isMilestone) {\n return { isOverdue: false, daysText: '', differenceInDays: 0 };\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, differenceInDays };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n isStudent: boolean,\n accuracy?: number | null,\n dueDateTs?: number | null,\n isMilestone?: boolean,\n) => {\n const { isOverdue, daysText, differenceInDays } = calculateDueDateInfo(dueDateTs, isMilestone);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\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 </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={6}\n $paddingLeft={6}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n </InProgressIconWrapper>\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\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 $borderRadius={16}\n $paddingRight={0}\n $paddingLeft={daysText ? 6 : 0}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $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: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\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 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Text","InProgressIconWrapper","Lock2Icon","jsxs","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
|
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 Check2Icon from '../../../assets/line-icons/icons/check2';\nimport ExclamationIcon from '../../../assets/line-icons/icons/exclamation';\nimport Lock2Icon from '../../../assets/line-icons/icons/lock2';\nimport StatusIcon from '../../../assets/line-icons/icons/status';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport FlexView from '../..//ui/layout/flex-view';\nimport ArrowTooltip from '../../ui/arrow-tooltip/arrow-tooltip';\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 differenceInDays: number;\n}\n\nconst SECONDS_PER_DAY = 60 * 60 * 24;\nconst OVERDUE_TAG_STATES: INodeDataProps['state'][] = ['NOT_STARTED'];\n\nconst calculateDueDateInfo = (dueDateTs?: number | null, isMilestone?: boolean): DueDateInfo => {\n if (!dueDateTs || isMilestone) {\n return { isOverdue: false, daysText: '', differenceInDays: 0 };\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, differenceInDays };\n};\n\nconst getNodeStateBasedTagInfo = (\n nodeState: INodeDataProps['state'],\n isStudent: boolean,\n accuracy?: number | null,\n dueDateTs?: number | null,\n isMilestone?: boolean,\n) => {\n const { isOverdue, daysText, differenceInDays } = calculateDueDateInfo(dueDateTs, isMilestone);\n\n if (!isMilestone && isOverdue && OVERDUE_TAG_STATES.includes(nodeState)) {\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem=\"Complete now\"\n zIndex={10}\n hidden={!isStudent}\n parentWidth=\"fit-content\"\n >\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 </ArrowTooltip>\n ),\n top: -10,\n right: -10,\n };\n }\n\n switch (nodeState) {\n case 'NOT_STARTED':\n return {\n icon: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={\n differenceInDays > 1 ? `${differenceInDays} days left` : 'Complete it today'\n }\n zIndex={10}\n hidden={!isStudent}\n >\n <InProgressIconWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $paddingRight={6}\n $paddingLeft={6}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $color=\"WHITE\">\n {daysText}\n </Text>\n )}\n </InProgressIconWrapper>\n </ArrowTooltip>\n ),\n top: 0,\n right: 0,\n };\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 $borderRadius={16}\n $paddingRight={0}\n $paddingLeft={daysText ? 6 : 0}\n >\n {daysText && (\n <Text $renderAs=\"ub3-bold\" $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: (\n <ArrowTooltip\n renderAs=\"primary\"\n position=\"bottom\"\n tooltipItem={isStudent ? 'Waiting for teacher to review' : 'Needs your review'}\n zIndex={10}\n >\n <Tag Icon={ExclamationIcon} />\n </ArrowTooltip>\n ),\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 'LEVEL2':\n case 'LEVEL3':\n case 'HIDDEN_BASIC':\n return {\n lottie: LOTTIE.COMPETITIVE_ARENA,\n };\n case 'LEARNING':\n case 'SAT_MATH_LEARNING':\n case 'SAT_ENGLISH_LEARNING':\n return {\n lottie: LOTTIE.LEARN,\n };\n case 'RECAP':\n case 'REMEDIAL':\n case 'REVISION':\n case 'PPT_BASIC':\n case 'SAT_MATH_RECAP':\n case 'SAT_ENGLISH_RECAP':\n return {\n lottie: LOTTIE.RECAP,\n };\n case 'DYNAMIC':\n case 'ASSESSMENT':\n case 'CHAPTER_ASSESSMENT':\n case 'DIAGNOSTIC':\n case 'TURING_ASSESSMENT':\n return {\n lottie: LOTTIE.TEST,\n };\n case 'PRACTICE':\n case 'EXTRA_PRACTICE':\n case 'TARGET_PRACTICE':\n case 'MASTERY':\n case 'TURING_PRACTICE':\n case 'SAT_MATH_ASSESSMENT':\n case 'SAT_ENGLISH_ASSESSMENT':\n return {\n lottie: LOTTIE.PRACTICE,\n };\n case 'PUZZLE':\n case 'PUZZLE_EASY':\n case 'PUZZLE_MEDIUM':\n case 'PUZZLE_HARD':\n return {\n lottie: LOTTIE.PUZZLE,\n };\n case 'TURING_SUBJECTIVE':\n return {\n lottie: LOTTIE.SUBJECTIVE,\n };\n case 'TURING_BASIC':\n case 'PYTHON_BASIC':\n case 'PYTHON_VISUAL':\n return {\n lottie: LOTTIE.ACTIVITY,\n };\n case 'VIDEO':\n return {\n lottie: LOTTIE.VIDEO,\n };\n case 'PDF':\n return {\n lottie: LOTTIE.DOWNLOAD,\n };\n default:\n return {\n lottie: LOTTIE.PROJECT,\n };\n }\n};\n\nexport { getNodeStateBasedTagInfo, getNodeCardBasedIcon };\n"],"names":["SECONDS_PER_DAY","OVERDUE_TAG_STATES","calculateDueDateInfo","dueDateTs","isMilestone","currentTimestamp","differenceInSeconds","differenceInDays","isOverdue","daysText","getNodeStateBasedTagInfo","nodeState","isStudent","accuracy","jsx","ArrowTooltip","FlexView","Text","InProgressIconWrapper","Lock2Icon","jsxs","StatusIcon","Tag","Check2Icon","ExclamationIcon","getNodeCardBasedIcon","nodeType","LOTTIE"],"mappings":"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"}
|