@cuemath/leap 3.1.21 → 3.1.22-akm-2
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/features/circle-games/leaderboard/enums/leaderboard-type-enum.js +1 -1
- package/dist/features/circle-games/leaderboard/enums/leaderboard-type-enum.js.map +1 -1
- package/dist/features/circle-games/leaderboard/leaderboard.js +83 -79
- package/dist/features/circle-games/leaderboard/leaderboard.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js +90 -80
- package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map +1 -1
- package/dist/features/milestone/milestone-list-container/milestone-list/no-active-milestone/no-active-milestone.js +44 -34
- package/dist/features/milestone/milestone-list-container/milestone-list/no-active-milestone/no-active-milestone.js.map +1 -1
- package/dist/features/worksheet/worksheet/hooks/use-learnosity-append.js +26 -22
- package/dist/features/worksheet/worksheet/hooks/use-learnosity-append.js.map +1 -1
- package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js +42 -42
- package/dist/features/worksheet/worksheet/worksheet-question/learnosity-question.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _ = /* @__PURE__ */ ((l) => (l.BI_WEEKLY = "
|
|
1
|
+
var _ = /* @__PURE__ */ ((l) => (l.BI_WEEKLY = "bi_weekly", l.ALL_TIME = "global", l.ALL_TIME_STREAK = "globalStreak", l))(_ || {});
|
|
2
2
|
export {
|
|
3
3
|
_ as ELeaderboardType
|
|
4
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaderboard-type-enum.js","sources":["../../../../../src/features/circle-games/leaderboard/enums/leaderboard-type-enum.ts"],"sourcesContent":["export enum ELeaderboardType {\n BI_WEEKLY = '
|
|
1
|
+
{"version":3,"file":"leaderboard-type-enum.js","sources":["../../../../../src/features/circle-games/leaderboard/enums/leaderboard-type-enum.ts"],"sourcesContent":["export enum ELeaderboardType {\n BI_WEEKLY = 'bi_weekly',\n ALL_TIME = 'global',\n ALL_TIME_STREAK = 'globalStreak',\n}\n"],"names":["ELeaderboardType"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,YAAY,aACZA,EAAA,WAAW,UACXA,EAAA,kBAAkB,gBAHRA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { ILLUSTRATIONS as
|
|
4
|
-
import { LOTTIE as
|
|
5
|
-
import { CircularLoader as
|
|
6
|
-
import
|
|
7
|
-
import { useCircleSounds as
|
|
8
|
-
import { Banner as
|
|
9
|
-
import { LeaderboardItemWithObserver as
|
|
10
|
-
import { NavigationButton as
|
|
11
|
-
import { StreakReductionInfoBar as
|
|
12
|
-
import { Timer as
|
|
1
|
+
import { jsx as e, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import { useState as c, useEffect as M } from "react";
|
|
3
|
+
import { ILLUSTRATIONS as H } from "../../../assets/illustrations/illustrations.js";
|
|
4
|
+
import { LOTTIE as E } from "../../../assets/lottie/lottie.js";
|
|
5
|
+
import { CircularLoader as q } from "../../ui/loader/circular-loader/circular-loader.js";
|
|
6
|
+
import z from "../../ui/text/text.js";
|
|
7
|
+
import { useCircleSounds as G } from "../hooks/use-circle-sounds/use-circle-sounds.js";
|
|
8
|
+
import { Banner as L } from "./comps/banner/banner.js";
|
|
9
|
+
import { LeaderboardItemWithObserver as J } from "./comps/leaderboard-item/leaderboard-item.js";
|
|
10
|
+
import { NavigationButton as Q } from "./comps/navigation-button/navigation-button.js";
|
|
11
|
+
import { StreakReductionInfoBar as V } from "./comps/streak-reduction-infobar/streak-reduction-infobar.js";
|
|
12
|
+
import { Timer as X } from "./comps/timer/timer.js";
|
|
13
13
|
import { ELeaderboardType as r } from "./enums/leaderboard-type-enum.js";
|
|
14
|
-
import { useTimer as
|
|
15
|
-
import { Leaderboard as
|
|
16
|
-
const
|
|
17
|
-
[r.ALL_TIME_STREAK]:
|
|
18
|
-
[r.ALL_TIME]:
|
|
19
|
-
[r.BI_WEEKLY]:
|
|
14
|
+
import { useTimer as Z } from "./hooks/use-timer/use-timer.js";
|
|
15
|
+
import { Leaderboard as D, LeaderboardContainer as ee, BannerWrapper as re, TournamentBannerCustContainer as te, TrophyWrapper as ne, ItemsWrapper as oe, Banner as ie, ActionButtonWrapper as se } from "./leaderboard-styled.js";
|
|
16
|
+
const l = {
|
|
17
|
+
[r.ALL_TIME_STREAK]: E.ELITE_CIRCLE,
|
|
18
|
+
[r.ALL_TIME]: E.ELITE_CIRCLE,
|
|
19
|
+
[r.BI_WEEKLY]: E.TOURNAMENT_RIPPLE
|
|
20
20
|
}, o = [
|
|
21
21
|
{
|
|
22
22
|
name: "TOURNAMENT",
|
|
@@ -30,125 +30,129 @@ const L = {
|
|
|
30
30
|
name: "ALL TIME",
|
|
31
31
|
type: r.ALL_TIME
|
|
32
32
|
}
|
|
33
|
-
],
|
|
34
|
-
|
|
33
|
+
], W = {
|
|
34
|
+
[r.BI_WEEKLY]: "biWeekly",
|
|
35
|
+
[r.ALL_TIME]: "global",
|
|
36
|
+
[r.ALL_TIME_STREAK]: "globalStreak"
|
|
37
|
+
}, Ae = ({
|
|
38
|
+
leaderboardData: s,
|
|
35
39
|
type: u = r.BI_WEEKLY,
|
|
36
|
-
userId:
|
|
37
|
-
onClose:
|
|
38
|
-
isLoading:
|
|
39
|
-
streakInfo:
|
|
40
|
+
userId: k,
|
|
41
|
+
onClose: N,
|
|
42
|
+
isLoading: m,
|
|
43
|
+
streakInfo: I
|
|
40
44
|
}) => {
|
|
41
|
-
var
|
|
42
|
-
const [i,
|
|
45
|
+
var A, S, R, B, b, C, x, K;
|
|
46
|
+
const [i, h] = c(
|
|
43
47
|
o.findIndex((t) => u === t.type)
|
|
44
|
-
), [n,
|
|
48
|
+
), [n, Y] = c(((A = s == null ? void 0 : s[W[u]]) == null ? void 0 : A.leaderboardPlayers) || []), [_, O] = c({
|
|
45
49
|
current: 0,
|
|
46
50
|
end: 0
|
|
47
|
-
}), [
|
|
48
|
-
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
+
}), [F, f] = Z(0), [d, $] = c(!1), j = (S = n == null ? void 0 : n[0]) == null ? void 0 : S.points, v = ((R = n == null ? void 0 : n[0]) == null ? void 0 : R.streakDays) || 0, { playButtonSound: y } = G(), w = () => {
|
|
52
|
+
y(), h((t) => t - 1 < 0 ? o.length - 1 : t - 1);
|
|
53
|
+
}, U = () => {
|
|
54
|
+
y(), h((t) => t + 1 === o.length ? 0 : t + 1);
|
|
51
55
|
};
|
|
52
|
-
return
|
|
56
|
+
return M(() => {
|
|
53
57
|
f(0);
|
|
54
|
-
}, [f]),
|
|
55
|
-
var
|
|
56
|
-
const t = (
|
|
57
|
-
if (
|
|
58
|
-
const
|
|
59
|
-
t === r.BI_WEEKLY && (
|
|
60
|
-
current:
|
|
61
|
-
end:
|
|
62
|
-
}),
|
|
58
|
+
}, [f]), M(() => {
|
|
59
|
+
var g;
|
|
60
|
+
const t = (g = o[i]) == null ? void 0 : g.type, T = t && W[t], a = T && (s == null ? void 0 : s[T]);
|
|
61
|
+
if (a) {
|
|
62
|
+
const P = a.leaderboardPlayers || [];
|
|
63
|
+
t === r.BI_WEEKLY && (O({
|
|
64
|
+
current: a.currentTimestamp,
|
|
65
|
+
end: a.endTimestamp
|
|
66
|
+
}), a.currentTimestamp > a.endTimestamp && (P.splice(10), $(!0))), Y([...P]);
|
|
63
67
|
}
|
|
64
|
-
}, [i,
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
((
|
|
67
|
-
|
|
68
|
+
}, [i, s]), /* @__PURE__ */ e(D, { children: /* @__PURE__ */ p(ee, { children: [
|
|
69
|
+
/* @__PURE__ */ p(re, { children: [
|
|
70
|
+
((B = o[i]) == null ? void 0 : B.type) === r.BI_WEEKLY && /* @__PURE__ */ e(
|
|
71
|
+
L,
|
|
68
72
|
{
|
|
69
|
-
isLoading:
|
|
73
|
+
isLoading: m || n.length === 0,
|
|
70
74
|
bgFromTopPosition: -120,
|
|
71
75
|
bgFromRightPosition: -110,
|
|
72
|
-
primaryText:
|
|
73
|
-
secondaryText:
|
|
76
|
+
primaryText: d ? /* @__PURE__ */ e("span", { children: "New Tournament" }) : /* @__PURE__ */ e("span", { children: "Tournament" }),
|
|
77
|
+
secondaryText: d ? /* @__PURE__ */ e("span", { children: "Starts Soon" }) : /* @__PURE__ */ p("span", { children: [
|
|
74
78
|
" ",
|
|
75
79
|
/* @__PURE__ */ e(
|
|
76
|
-
|
|
80
|
+
X,
|
|
77
81
|
{
|
|
78
|
-
fromTimestamp:
|
|
79
|
-
endTimestamp:
|
|
82
|
+
fromTimestamp: F + _.current,
|
|
83
|
+
endTimestamp: _.end
|
|
80
84
|
}
|
|
81
85
|
),
|
|
82
86
|
" ",
|
|
83
87
|
"left"
|
|
84
88
|
] }),
|
|
85
|
-
lottiePath:
|
|
86
|
-
custEle: /* @__PURE__ */ e(
|
|
89
|
+
lottiePath: l[r.BI_WEEKLY],
|
|
90
|
+
custEle: /* @__PURE__ */ e(te, { children: /* @__PURE__ */ e(ne, { children: /* @__PURE__ */ e("img", { src: H.TROPHY_CIRCLE }) }) })
|
|
87
91
|
}
|
|
88
92
|
),
|
|
89
|
-
((
|
|
90
|
-
|
|
93
|
+
((b = o[i]) == null ? void 0 : b.type) === r.ALL_TIME_STREAK && /* @__PURE__ */ e(
|
|
94
|
+
L,
|
|
91
95
|
{
|
|
92
|
-
isLoading:
|
|
96
|
+
isLoading: m,
|
|
93
97
|
bgFromTopPosition: -140,
|
|
94
98
|
bgFromRightPosition: -90,
|
|
95
99
|
primaryText: /* @__PURE__ */ e("span", { children: "Streak Stars" }),
|
|
96
100
|
secondaryText: /* @__PURE__ */ e("span", { children: "Top 50" }),
|
|
97
|
-
lottiePath:
|
|
101
|
+
lottiePath: l[r.ALL_TIME_STREAK]
|
|
98
102
|
}
|
|
99
103
|
),
|
|
100
104
|
((C = o[i]) == null ? void 0 : C.type) === r.ALL_TIME && /* @__PURE__ */ e(
|
|
101
|
-
|
|
105
|
+
L,
|
|
102
106
|
{
|
|
103
|
-
isLoading:
|
|
107
|
+
isLoading: m,
|
|
104
108
|
bgFromTopPosition: -140,
|
|
105
109
|
bgFromRightPosition: -90,
|
|
106
110
|
primaryText: /* @__PURE__ */ e("span", { children: "Elite Circle" }),
|
|
107
111
|
secondaryText: /* @__PURE__ */ e("span", { children: "Top 50" }),
|
|
108
|
-
lottiePath:
|
|
112
|
+
lottiePath: l[r.ALL_TIME]
|
|
109
113
|
}
|
|
110
114
|
)
|
|
111
115
|
] }),
|
|
112
|
-
|
|
113
|
-
!
|
|
116
|
+
m && /* @__PURE__ */ e(q, {}),
|
|
117
|
+
!m && n && /* @__PURE__ */ p(oe, { children: [
|
|
114
118
|
((x = o[i]) == null ? void 0 : x.type) === r.ALL_TIME_STREAK && /* @__PURE__ */ e(
|
|
115
|
-
|
|
119
|
+
V,
|
|
116
120
|
{
|
|
117
|
-
startTimestampToday:
|
|
118
|
-
streakReduction:
|
|
121
|
+
startTimestampToday: I.startTimestampToday,
|
|
122
|
+
streakReduction: I.streakReduction
|
|
119
123
|
}
|
|
120
124
|
),
|
|
121
|
-
|
|
125
|
+
d && ((K = o[i]) == null ? void 0 : K.type) === r.BI_WEEKLY && /* @__PURE__ */ e(ie, { children: /* @__PURE__ */ e(z, { $renderAs: "ab3", $color: "WHITE", children: "Congratulating winners of the last tournament!" }) }),
|
|
122
126
|
n.map((t) => {
|
|
123
|
-
var
|
|
127
|
+
var T;
|
|
124
128
|
return /* @__PURE__ */ e(
|
|
125
|
-
|
|
129
|
+
J,
|
|
126
130
|
{
|
|
127
131
|
player: t,
|
|
128
132
|
rank: t.rank,
|
|
129
|
-
maxStreakDays:
|
|
130
|
-
maxPoints:
|
|
131
|
-
leaderboardType: (
|
|
132
|
-
isActive: t.userId ===
|
|
133
|
+
maxStreakDays: v,
|
|
134
|
+
maxPoints: j,
|
|
135
|
+
leaderboardType: (T = o[i]) == null ? void 0 : T.type,
|
|
136
|
+
isActive: t.userId === k
|
|
133
137
|
},
|
|
134
138
|
t.rank
|
|
135
139
|
);
|
|
136
140
|
})
|
|
137
141
|
] }),
|
|
138
|
-
/* @__PURE__ */ e(
|
|
139
|
-
|
|
142
|
+
/* @__PURE__ */ e(se, { children: /* @__PURE__ */ e(
|
|
143
|
+
Q,
|
|
140
144
|
{
|
|
141
145
|
labels: Object.values(r),
|
|
142
|
-
onLeftClick:
|
|
143
|
-
onRightClick:
|
|
146
|
+
onLeftClick: w,
|
|
147
|
+
onRightClick: U,
|
|
144
148
|
currIndex: i,
|
|
145
|
-
onClose:
|
|
146
|
-
disableSwipe:
|
|
149
|
+
onClose: N,
|
|
150
|
+
disableSwipe: m || n.length === 0
|
|
147
151
|
}
|
|
148
152
|
) })
|
|
149
153
|
] }) });
|
|
150
154
|
};
|
|
151
155
|
export {
|
|
152
|
-
|
|
156
|
+
Ae as Leaderboard
|
|
153
157
|
};
|
|
154
158
|
//# sourceMappingURL=leaderboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaderboard.js","sources":["../../../../src/features/circle-games/leaderboard/leaderboard.tsx"],"sourcesContent":["import type {\n ILeaderboardPlayerWithPoints,\n ILeaderboardPlayerWithStreak,\n} from './dal/use-get-leaderboard-dal/use-get-leaderboard-dal-types';\nimport type { ILeaderboardProps } from './leaderboard-types';\n\nimport { useEffect, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport { CircularLoader } from '../../ui/loader/circular-loader/circular-loader';\nimport Text from '../../ui/text/text';\nimport { useCircleSounds } from '../hooks/use-circle-sounds/use-circle-sounds';\nimport { Banner } from './comps/banner/banner';\nimport { LeaderboardItemWithObserver } from './comps/leaderboard-item/leaderboard-item';\nimport { NavigationButton } from './comps/navigation-button/navigation-button';\nimport { StreakReductionInfoBar } from './comps/streak-reduction-infobar/streak-reduction-infobar';\nimport { Timer } from './comps/timer/timer';\nimport { ELeaderboardType } from './enums/leaderboard-type-enum';\nimport { useTimer } from './hooks/use-timer/use-timer';\nimport * as Styled from './leaderboard-styled';\n\nconst BANNER_LOTTIES: Record<ELeaderboardType, string> = {\n [ELeaderboardType.ALL_TIME_STREAK]: LOTTIE.ELITE_CIRCLE,\n [ELeaderboardType.ALL_TIME]: LOTTIE.ELITE_CIRCLE,\n [ELeaderboardType.BI_WEEKLY]: LOTTIE.TOURNAMENT_RIPPLE,\n};\n\nconst leaderboards = [\n {\n name: 'TOURNAMENT',\n type: ELeaderboardType.BI_WEEKLY,\n },\n {\n name: 'STREAK STARS',\n type: ELeaderboardType.ALL_TIME_STREAK,\n },\n {\n name: 'ALL TIME',\n type: ELeaderboardType.ALL_TIME,\n },\n];\n\nexport const Leaderboard = ({\n leaderboardData,\n type = ELeaderboardType.BI_WEEKLY,\n userId,\n onClose,\n isLoading,\n streakInfo,\n}: ILeaderboardProps) => {\n const [currentLeaderBoardIndex, setCurrentLeaderboardIndex] = useState(\n leaderboards.findIndex(leaderboard => type === leaderboard.type),\n );\n\n const [currLeaderboardData, setCurrLeaderboardData] = useState<\n (ILeaderboardPlayerWithPoints | ILeaderboardPlayerWithStreak)[] | []\n >(leaderboardData?.[type]?.leaderboardPlayers || []);\n\n const [currLeaderboardTimeStamps, setCurrLeaderboardTimeStamps] = useState<{\n current: number;\n end: number;\n }>({\n current: 0,\n end: 0,\n });\n\n const [time, setTimer] = useTimer(0);\n const [isTournamentEnded, setIsTournamentEnded] = useState(false);\n const maxPoints = (currLeaderboardData?.[0] as ILeaderboardPlayerWithPoints)?.points;\n const maxStreakDays = (currLeaderboardData?.[0] as ILeaderboardPlayerWithStreak)?.streakDays || 0;\n const { playButtonSound } = useCircleSounds();\n\n const handlePrevious = () => {\n playButtonSound();\n setCurrentLeaderboardIndex(prev => {\n if (prev - 1 < 0) {\n return leaderboards.length - 1;\n }\n\n return prev - 1;\n });\n };\n\n const handleNext = () => {\n playButtonSound();\n setCurrentLeaderboardIndex(prev => {\n if (prev + 1 === leaderboards.length) {\n return 0;\n }\n\n return prev + 1;\n });\n };\n\n useEffect(() => {\n setTimer(0);\n }, [setTimer]);\n\n useEffect(() => {\n const currType = leaderboards[currentLeaderBoardIndex]?.type;\n const currLeaderboard = currType && leaderboardData?.[currType];\n\n if (currLeaderboard) {\n const leaderboardList = currLeaderboard.leaderboardPlayers || [];\n\n if (currType === ELeaderboardType.BI_WEEKLY) {\n setCurrLeaderboardTimeStamps({\n current: currLeaderboard.currentTimestamp,\n end: currLeaderboard.endTimestamp,\n });\n\n if (currLeaderboard.currentTimestamp > currLeaderboard.endTimestamp) {\n leaderboardList.splice(10);\n setIsTournamentEnded(true);\n }\n }\n\n setCurrLeaderboardData([...leaderboardList]);\n }\n }, [currentLeaderBoardIndex, leaderboardData]);\n\n return (\n <Styled.Leaderboard>\n <Styled.LeaderboardContainer>\n <Styled.BannerWrapper>\n {/* tournament banner */}\n {leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.BI_WEEKLY && (\n <Banner\n isLoading={isLoading || currLeaderboardData.length === 0}\n bgFromTopPosition={-120}\n bgFromRightPosition={-110}\n primaryText={\n isTournamentEnded ? <span>New Tournament</span> : <span>Tournament</span>\n }\n secondaryText={\n isTournamentEnded ? (\n <span>Starts Soon</span>\n ) : (\n <span>\n {' '}\n <Timer\n fromTimestamp={(time as number) + currLeaderboardTimeStamps.current}\n endTimestamp={currLeaderboardTimeStamps.end}\n />{' '}\n {'left'}\n </span>\n )\n }\n lottiePath={BANNER_LOTTIES[ELeaderboardType.BI_WEEKLY]}\n custEle={\n <Styled.TournamentBannerCustContainer>\n <Styled.TrophyWrapper>\n <img src={ILLUSTRATIONS.TROPHY_CIRCLE} />\n </Styled.TrophyWrapper>\n </Styled.TournamentBannerCustContainer>\n }\n />\n )}\n\n {/* top streak banner */}\n {leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.ALL_TIME_STREAK && (\n <Banner\n isLoading={isLoading}\n bgFromTopPosition={-140}\n bgFromRightPosition={-90}\n primaryText={<span>Streak Stars</span>}\n secondaryText={<span>Top 50</span>}\n lottiePath={BANNER_LOTTIES[ELeaderboardType.ALL_TIME_STREAK]}\n />\n )}\n\n {/* elite circle banner */}\n {leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.ALL_TIME && (\n <Banner\n isLoading={isLoading}\n bgFromTopPosition={-140}\n bgFromRightPosition={-90}\n primaryText={<span>Elite Circle</span>}\n secondaryText={<span>Top 50</span>}\n lottiePath={BANNER_LOTTIES[ELeaderboardType.ALL_TIME]}\n />\n )}\n </Styled.BannerWrapper>\n\n {isLoading && <CircularLoader />}\n\n {!isLoading && currLeaderboardData && (\n <Styled.ItemsWrapper>\n {leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.ALL_TIME_STREAK && (\n <StreakReductionInfoBar\n startTimestampToday={streakInfo.startTimestampToday}\n streakReduction={streakInfo.streakReduction}\n />\n )}\n {isTournamentEnded &&\n leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.BI_WEEKLY && (\n <Styled.Banner>\n <Text $renderAs=\"ab3\" $color=\"WHITE\">\n Congratulating winners of the last tournament!\n </Text>\n </Styled.Banner>\n )}\n {currLeaderboardData.map(player => {\n return (\n <LeaderboardItemWithObserver\n key={player.rank}\n player={player}\n rank={player.rank}\n maxStreakDays={maxStreakDays}\n maxPoints={maxPoints}\n leaderboardType={leaderboards[currentLeaderBoardIndex]?.type}\n isActive={player.userId === userId}\n />\n );\n })}\n </Styled.ItemsWrapper>\n )}\n\n <Styled.ActionButtonWrapper>\n <NavigationButton\n labels={Object.values(ELeaderboardType)}\n onLeftClick={handlePrevious}\n onRightClick={handleNext}\n currIndex={currentLeaderBoardIndex}\n onClose={onClose}\n disableSwipe={isLoading || currLeaderboardData.length === 0}\n />\n </Styled.ActionButtonWrapper>\n </Styled.LeaderboardContainer>\n </Styled.Leaderboard>\n );\n};\n"],"names":["BANNER_LOTTIES","ELeaderboardType","LOTTIE","leaderboards","Leaderboard","leaderboardData","type","userId","onClose","isLoading","streakInfo","currentLeaderBoardIndex","setCurrentLeaderboardIndex","useState","leaderboard","currLeaderboardData","setCurrLeaderboardData","_a","currLeaderboardTimeStamps","setCurrLeaderboardTimeStamps","time","setTimer","useTimer","isTournamentEnded","setIsTournamentEnded","maxPoints","_b","maxStreakDays","_c","playButtonSound","useCircleSounds","handlePrevious","prev","handleNext","useEffect","currType","currLeaderboard","leaderboardList","Styled.Leaderboard","jsxs","Styled.LeaderboardContainer","Styled.BannerWrapper","_d","jsx","Banner","Timer","Styled.TournamentBannerCustContainer","Styled.TrophyWrapper","ILLUSTRATIONS","_e","_f","CircularLoader","Styled.ItemsWrapper","_g","StreakReductionInfoBar","_h","Styled.Banner","Text","player","LeaderboardItemWithObserver","Styled.ActionButtonWrapper","NavigationButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"leaderboard.js","sources":["../../../../src/features/circle-games/leaderboard/leaderboard.tsx"],"sourcesContent":["import type {\n ILeaderboardDetails,\n ILeaderboardPlayerWithPoints,\n ILeaderboardPlayerWithStreak,\n} from './dal/use-get-leaderboard-dal/use-get-leaderboard-dal-types';\nimport type { ILeaderboardProps } from './leaderboard-types';\n\nimport { useEffect, useState } from 'react';\n\nimport { ILLUSTRATIONS } from '../../../assets/illustrations/illustrations';\nimport { LOTTIE } from '../../../assets/lottie/lottie';\nimport { CircularLoader } from '../../ui/loader/circular-loader/circular-loader';\nimport Text from '../../ui/text/text';\nimport { useCircleSounds } from '../hooks/use-circle-sounds/use-circle-sounds';\nimport { Banner } from './comps/banner/banner';\nimport { LeaderboardItemWithObserver } from './comps/leaderboard-item/leaderboard-item';\nimport { NavigationButton } from './comps/navigation-button/navigation-button';\nimport { StreakReductionInfoBar } from './comps/streak-reduction-infobar/streak-reduction-infobar';\nimport { Timer } from './comps/timer/timer';\nimport { ELeaderboardType } from './enums/leaderboard-type-enum';\nimport { useTimer } from './hooks/use-timer/use-timer';\nimport * as Styled from './leaderboard-styled';\n\nconst BANNER_LOTTIES: Record<ELeaderboardType, string> = {\n [ELeaderboardType.ALL_TIME_STREAK]: LOTTIE.ELITE_CIRCLE,\n [ELeaderboardType.ALL_TIME]: LOTTIE.ELITE_CIRCLE,\n [ELeaderboardType.BI_WEEKLY]: LOTTIE.TOURNAMENT_RIPPLE,\n};\n\nconst leaderboards = [\n {\n name: 'TOURNAMENT',\n type: ELeaderboardType.BI_WEEKLY,\n },\n {\n name: 'STREAK STARS',\n type: ELeaderboardType.ALL_TIME_STREAK,\n },\n {\n name: 'ALL TIME',\n type: ELeaderboardType.ALL_TIME,\n },\n];\n\nconst leaderboardKeyMap: Record<ELeaderboardType, keyof ILeaderboardDetails> = {\n [ELeaderboardType.BI_WEEKLY]: 'biWeekly',\n [ELeaderboardType.ALL_TIME]: 'global',\n [ELeaderboardType.ALL_TIME_STREAK]: 'globalStreak',\n};\n\nexport const Leaderboard = ({\n leaderboardData,\n type = ELeaderboardType.BI_WEEKLY,\n userId,\n onClose,\n isLoading,\n streakInfo,\n}: ILeaderboardProps) => {\n const [currentLeaderBoardIndex, setCurrentLeaderboardIndex] = useState(\n leaderboards.findIndex(leaderboard => type === leaderboard.type),\n );\n\n const [currLeaderboardData, setCurrLeaderboardData] = useState<\n (ILeaderboardPlayerWithPoints | ILeaderboardPlayerWithStreak)[] | []\n >(leaderboardData?.[leaderboardKeyMap[type]]?.leaderboardPlayers || []);\n\n const [currLeaderboardTimeStamps, setCurrLeaderboardTimeStamps] = useState<{\n current: number;\n end: number;\n }>({\n current: 0,\n end: 0,\n });\n\n const [time, setTimer] = useTimer(0);\n const [isTournamentEnded, setIsTournamentEnded] = useState(false);\n const maxPoints = (currLeaderboardData?.[0] as ILeaderboardPlayerWithPoints)?.points;\n const maxStreakDays = (currLeaderboardData?.[0] as ILeaderboardPlayerWithStreak)?.streakDays || 0;\n const { playButtonSound } = useCircleSounds();\n\n const handlePrevious = () => {\n playButtonSound();\n setCurrentLeaderboardIndex(prev => {\n if (prev - 1 < 0) {\n return leaderboards.length - 1;\n }\n\n return prev - 1;\n });\n };\n\n const handleNext = () => {\n playButtonSound();\n setCurrentLeaderboardIndex(prev => {\n if (prev + 1 === leaderboards.length) {\n return 0;\n }\n\n return prev + 1;\n });\n };\n\n useEffect(() => {\n setTimer(0);\n }, [setTimer]);\n\n useEffect(() => {\n const currType = leaderboards[currentLeaderBoardIndex]?.type;\n\n const mappedKey = currType && leaderboardKeyMap[currType as ELeaderboardType];\n const currLeaderboard = mappedKey && leaderboardData?.[mappedKey];\n\n if (currLeaderboard) {\n const leaderboardList = currLeaderboard.leaderboardPlayers || [];\n\n if (currType === ELeaderboardType.BI_WEEKLY) {\n setCurrLeaderboardTimeStamps({\n current: currLeaderboard.currentTimestamp,\n end: currLeaderboard.endTimestamp,\n });\n\n if (currLeaderboard.currentTimestamp > currLeaderboard.endTimestamp) {\n leaderboardList.splice(10);\n setIsTournamentEnded(true);\n }\n }\n\n setCurrLeaderboardData([...leaderboardList]);\n }\n }, [currentLeaderBoardIndex, leaderboardData]);\n\n return (\n <Styled.Leaderboard>\n <Styled.LeaderboardContainer>\n <Styled.BannerWrapper>\n {/* tournament banner */}\n {leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.BI_WEEKLY && (\n <Banner\n isLoading={isLoading || currLeaderboardData.length === 0}\n bgFromTopPosition={-120}\n bgFromRightPosition={-110}\n primaryText={\n isTournamentEnded ? <span>New Tournament</span> : <span>Tournament</span>\n }\n secondaryText={\n isTournamentEnded ? (\n <span>Starts Soon</span>\n ) : (\n <span>\n {' '}\n <Timer\n fromTimestamp={(time as number) + currLeaderboardTimeStamps.current}\n endTimestamp={currLeaderboardTimeStamps.end}\n />{' '}\n {'left'}\n </span>\n )\n }\n lottiePath={BANNER_LOTTIES[ELeaderboardType.BI_WEEKLY]}\n custEle={\n <Styled.TournamentBannerCustContainer>\n <Styled.TrophyWrapper>\n <img src={ILLUSTRATIONS.TROPHY_CIRCLE} />\n </Styled.TrophyWrapper>\n </Styled.TournamentBannerCustContainer>\n }\n />\n )}\n\n {/* top streak banner */}\n {leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.ALL_TIME_STREAK && (\n <Banner\n isLoading={isLoading}\n bgFromTopPosition={-140}\n bgFromRightPosition={-90}\n primaryText={<span>Streak Stars</span>}\n secondaryText={<span>Top 50</span>}\n lottiePath={BANNER_LOTTIES[ELeaderboardType.ALL_TIME_STREAK]}\n />\n )}\n\n {/* elite circle banner */}\n {leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.ALL_TIME && (\n <Banner\n isLoading={isLoading}\n bgFromTopPosition={-140}\n bgFromRightPosition={-90}\n primaryText={<span>Elite Circle</span>}\n secondaryText={<span>Top 50</span>}\n lottiePath={BANNER_LOTTIES[ELeaderboardType.ALL_TIME]}\n />\n )}\n </Styled.BannerWrapper>\n\n {isLoading && <CircularLoader />}\n\n {!isLoading && currLeaderboardData && (\n <Styled.ItemsWrapper>\n {leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.ALL_TIME_STREAK && (\n <StreakReductionInfoBar\n startTimestampToday={streakInfo.startTimestampToday}\n streakReduction={streakInfo.streakReduction}\n />\n )}\n {isTournamentEnded &&\n leaderboards[currentLeaderBoardIndex]?.type === ELeaderboardType.BI_WEEKLY && (\n <Styled.Banner>\n <Text $renderAs=\"ab3\" $color=\"WHITE\">\n Congratulating winners of the last tournament!\n </Text>\n </Styled.Banner>\n )}\n {currLeaderboardData.map(player => {\n return (\n <LeaderboardItemWithObserver\n key={player.rank}\n player={player}\n rank={player.rank}\n maxStreakDays={maxStreakDays}\n maxPoints={maxPoints}\n leaderboardType={leaderboards[currentLeaderBoardIndex]?.type}\n isActive={player.userId === userId}\n />\n );\n })}\n </Styled.ItemsWrapper>\n )}\n\n <Styled.ActionButtonWrapper>\n <NavigationButton\n labels={Object.values(ELeaderboardType)}\n onLeftClick={handlePrevious}\n onRightClick={handleNext}\n currIndex={currentLeaderBoardIndex}\n onClose={onClose}\n disableSwipe={isLoading || currLeaderboardData.length === 0}\n />\n </Styled.ActionButtonWrapper>\n </Styled.LeaderboardContainer>\n </Styled.Leaderboard>\n );\n};\n"],"names":["BANNER_LOTTIES","ELeaderboardType","LOTTIE","leaderboards","leaderboardKeyMap","Leaderboard","leaderboardData","type","userId","onClose","isLoading","streakInfo","currentLeaderBoardIndex","setCurrentLeaderboardIndex","useState","leaderboard","currLeaderboardData","setCurrLeaderboardData","_a","currLeaderboardTimeStamps","setCurrLeaderboardTimeStamps","time","setTimer","useTimer","isTournamentEnded","setIsTournamentEnded","maxPoints","_b","maxStreakDays","_c","playButtonSound","useCircleSounds","handlePrevious","prev","handleNext","useEffect","currType","mappedKey","currLeaderboard","leaderboardList","Styled.Leaderboard","jsxs","Styled.LeaderboardContainer","Styled.BannerWrapper","_d","jsx","Banner","Timer","Styled.TournamentBannerCustContainer","Styled.TrophyWrapper","ILLUSTRATIONS","_e","_f","CircularLoader","Styled.ItemsWrapper","_g","StreakReductionInfoBar","_h","Styled.Banner","Text","player","LeaderboardItemWithObserver","Styled.ActionButtonWrapper","NavigationButton"],"mappings":"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"}
|
|
@@ -1,136 +1,146 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import Q, { memo as Y, useCallback as
|
|
1
|
+
import { jsxs as i, Fragment as K, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import Q, { memo as Y, useCallback as f } from "react";
|
|
3
3
|
import Z from "../../../hooks/use-lazy-ref.js";
|
|
4
|
+
import ee from "../../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
4
5
|
import h from "../../../ui/buttons/text-button/text-button.js";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
6
|
+
import m from "../../../ui/layout/flex-view.js";
|
|
7
|
+
import te from "../../../ui/separator/separator.js";
|
|
8
|
+
import oe from "../../../ui/text/text.js";
|
|
9
|
+
import ne from "./milestone-widget/milestone-widget.js";
|
|
10
|
+
import re from "./no-active-milestone/no-active-milestone.js";
|
|
10
11
|
import ie from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
|
|
11
|
-
const
|
|
12
|
-
({ milestones:
|
|
12
|
+
const ge = Y(
|
|
13
|
+
({ milestones: t, studentId: A, milestoneType: s, ...u }) => {
|
|
13
14
|
const {
|
|
14
|
-
canCreatePlan:
|
|
15
|
+
canCreatePlan: a,
|
|
15
16
|
isClassOngoing: g,
|
|
16
17
|
isFiltersAdded: C,
|
|
17
18
|
isStudentPresent: M,
|
|
18
19
|
onAddChapter: T,
|
|
19
20
|
onAddOutcome: n,
|
|
20
|
-
onChapterClick:
|
|
21
|
-
onCreatePlan:
|
|
22
|
-
onDelete:
|
|
23
|
-
onDraftPublish:
|
|
24
|
-
onEdit:
|
|
25
|
-
onCreateMilestoneTest:
|
|
26
|
-
onNodeAttempt:
|
|
21
|
+
onChapterClick: v,
|
|
22
|
+
onCreatePlan: r,
|
|
23
|
+
onDelete: w,
|
|
24
|
+
onDraftPublish: N,
|
|
25
|
+
onEdit: b,
|
|
26
|
+
onCreateMilestoneTest: R,
|
|
27
|
+
onNodeAttempt: x,
|
|
27
28
|
onNodeView: D,
|
|
28
29
|
onNodeReview: $,
|
|
29
|
-
onNodeReattempt:
|
|
30
|
-
onNodeReset:
|
|
31
|
-
onNodeUnassign:
|
|
30
|
+
onNodeReattempt: I,
|
|
31
|
+
onNodeReset: P,
|
|
32
|
+
onNodeUnassign: F,
|
|
32
33
|
onAssignResources: k,
|
|
33
34
|
onTestPreview: E,
|
|
34
35
|
onTestReview: S,
|
|
35
|
-
onTestStart:
|
|
36
|
-
activeMilestoneId:
|
|
37
|
-
activeTabId:
|
|
38
|
-
onWidgetTabSelection:
|
|
36
|
+
onTestStart: j,
|
|
37
|
+
activeMilestoneId: y,
|
|
38
|
+
activeTabId: G,
|
|
39
|
+
onWidgetTabSelection: V,
|
|
39
40
|
studentName: c,
|
|
40
|
-
teacherName:
|
|
41
|
-
parentName:
|
|
42
|
-
userType:
|
|
43
|
-
courseStream:
|
|
41
|
+
teacherName: _,
|
|
42
|
+
parentName: z,
|
|
43
|
+
userType: l,
|
|
44
|
+
courseStream: B,
|
|
44
45
|
onNodeAssignAsHomework: H
|
|
45
|
-
} =
|
|
46
|
-
|
|
47
|
-
}, [
|
|
46
|
+
} = u, d = s === "ACTIVE", L = s === "DRAFT", p = Z(ie), O = f(() => {
|
|
47
|
+
r == null || r(p);
|
|
48
|
+
}, [r, p]), W = f(() => {
|
|
48
49
|
n == null || n();
|
|
49
50
|
}, [n]);
|
|
50
|
-
if (!
|
|
51
|
-
const X =
|
|
52
|
-
(
|
|
53
|
-
), U =
|
|
54
|
-
(
|
|
51
|
+
if (!t) return null;
|
|
52
|
+
const X = t.some(
|
|
53
|
+
(o) => o.milestone_state === "ACTIVE"
|
|
54
|
+
), U = t.some(
|
|
55
|
+
(o) => o.milestone_state === "DRAFT"
|
|
55
56
|
);
|
|
56
|
-
return /* @__PURE__ */
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
return /* @__PURE__ */ i(K, { children: [
|
|
58
|
+
d && !X && /* @__PURE__ */ e(m, { $marginBottom: 40, children: /* @__PURE__ */ e(
|
|
59
|
+
re,
|
|
59
60
|
{
|
|
60
|
-
canCreatePlan:
|
|
61
|
+
canCreatePlan: a,
|
|
61
62
|
isDraftMilestonePresent: U,
|
|
62
63
|
isFiltersAdded: C,
|
|
63
|
-
onCreatePlan:
|
|
64
|
+
onCreatePlan: r,
|
|
64
65
|
studentName: c,
|
|
65
|
-
userType:
|
|
66
|
+
userType: l
|
|
66
67
|
}
|
|
67
68
|
) }),
|
|
68
|
-
|
|
69
|
-
/* @__PURE__ */
|
|
69
|
+
d && /* @__PURE__ */ i(m, { $flexDirection: "row", $justifyContent: "space-between", $marginBottom: 16, children: [
|
|
70
|
+
/* @__PURE__ */ i(oe, { $renderAs: "ac4", children: [
|
|
70
71
|
"Goals (",
|
|
71
|
-
|
|
72
|
+
t.length,
|
|
72
73
|
")"
|
|
73
74
|
] }),
|
|
74
|
-
|
|
75
|
-
/* @__PURE__ */
|
|
76
|
-
|
|
75
|
+
l === "TEACHER" && /* @__PURE__ */ i(m, { $flexDirection: "row", $flexGapX: 1, children: [
|
|
76
|
+
/* @__PURE__ */ e(
|
|
77
|
+
ee,
|
|
77
78
|
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
renderAs: "primary",
|
|
80
|
+
tooltipItem: "Goals can only be added for students who have joined the class",
|
|
81
|
+
hidden: a,
|
|
82
|
+
position: "bottom",
|
|
83
|
+
children: /* @__PURE__ */ e(
|
|
84
|
+
h,
|
|
85
|
+
{
|
|
86
|
+
label: "Create Goal",
|
|
87
|
+
size: "small",
|
|
88
|
+
onClick: O,
|
|
89
|
+
disabled: !a
|
|
90
|
+
}
|
|
91
|
+
)
|
|
82
92
|
}
|
|
83
93
|
),
|
|
84
|
-
/* @__PURE__ */
|
|
94
|
+
/* @__PURE__ */ e(h, { label: "Add Milestone", size: "small", onClick: W })
|
|
85
95
|
] })
|
|
86
96
|
] }),
|
|
87
|
-
|
|
88
|
-
const { id: J } =
|
|
89
|
-
return /* @__PURE__ */
|
|
90
|
-
/* @__PURE__ */
|
|
91
|
-
|
|
97
|
+
t.map((o, q) => {
|
|
98
|
+
const { id: J } = o;
|
|
99
|
+
return /* @__PURE__ */ i(Q.Fragment, { children: [
|
|
100
|
+
/* @__PURE__ */ e(
|
|
101
|
+
ne,
|
|
92
102
|
{
|
|
93
|
-
milestone:
|
|
94
|
-
studentId:
|
|
103
|
+
milestone: o,
|
|
104
|
+
studentId: A,
|
|
95
105
|
studentName: c,
|
|
96
|
-
parentName:
|
|
97
|
-
teacherName:
|
|
98
|
-
userType:
|
|
106
|
+
parentName: z,
|
|
107
|
+
teacherName: _,
|
|
108
|
+
userType: l,
|
|
99
109
|
onAddOutcome: n,
|
|
100
|
-
onChapterClick:
|
|
101
|
-
isMilestoneActive:
|
|
110
|
+
onChapterClick: v,
|
|
111
|
+
isMilestoneActive: d || L,
|
|
102
112
|
milestoneType: s,
|
|
103
|
-
onEdit:
|
|
104
|
-
onCreateMilestoneTest:
|
|
113
|
+
onEdit: b,
|
|
114
|
+
onCreateMilestoneTest: R,
|
|
105
115
|
onAddChapter: T,
|
|
106
|
-
onDelete:
|
|
107
|
-
onDraftPublish:
|
|
116
|
+
onDelete: w,
|
|
117
|
+
onDraftPublish: N,
|
|
108
118
|
isClassOngoing: g,
|
|
109
119
|
isStudentPresent: M,
|
|
110
120
|
onAssignResources: k,
|
|
111
|
-
onNodeAttempt:
|
|
121
|
+
onNodeAttempt: x,
|
|
112
122
|
onNodeView: D,
|
|
113
123
|
onNodeReview: $,
|
|
114
|
-
onNodeReattempt:
|
|
115
|
-
onNodeReset:
|
|
116
|
-
onNodeUnassign:
|
|
124
|
+
onNodeReattempt: I,
|
|
125
|
+
onNodeReset: P,
|
|
126
|
+
onNodeUnassign: F,
|
|
117
127
|
onNodeAssignAsHomework: H,
|
|
118
128
|
onTestPreview: E,
|
|
119
129
|
onTestReview: S,
|
|
120
|
-
onTestStart:
|
|
121
|
-
courseStream:
|
|
122
|
-
activeMilestoneId:
|
|
123
|
-
activeTabId:
|
|
124
|
-
onWidgetTabSelection:
|
|
130
|
+
onTestStart: j,
|
|
131
|
+
courseStream: B,
|
|
132
|
+
activeMilestoneId: y,
|
|
133
|
+
activeTabId: G,
|
|
134
|
+
onWidgetTabSelection: V
|
|
125
135
|
}
|
|
126
136
|
),
|
|
127
|
-
q !==
|
|
137
|
+
q !== t.length - 1 && /* @__PURE__ */ e(te, { heightX: 2 })
|
|
128
138
|
] }, `milestone=${J}`);
|
|
129
139
|
})
|
|
130
140
|
] });
|
|
131
141
|
}
|
|
132
142
|
);
|
|
133
143
|
export {
|
|
134
|
-
|
|
144
|
+
ge as default
|
|
135
145
|
};
|
|
136
146
|
//# sourceMappingURL=milestone-list.js.map
|
package/dist/features/milestone/milestone-list-container/milestone-list/milestone-list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"milestone-list.js","sources":["../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-list.tsx"],"sourcesContent":["import type { IMilestoneListProps } from './milestone-list-types';\n\nimport React, { memo, useCallback } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport useLazyRef from '../../../hooks/use-lazy-ref';\nimport TextButton from '../../../ui/buttons/text-button/text-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport MilestoneWidget from './milestone-widget/milestone-widget';\nimport NoActiveMilestone from './no-active-milestone/no-active-milestone';\n\nconst MilestoneList: React.FC<IMilestoneListProps> = memo(\n ({ milestones, studentId, milestoneType, ...restMilestoneListProps }) => {\n const {\n canCreatePlan,\n isClassOngoing,\n isFiltersAdded,\n isStudentPresent,\n onAddChapter,\n onAddOutcome,\n onChapterClick,\n onCreatePlan,\n onDelete,\n onDraftPublish,\n onEdit,\n onCreateMilestoneTest,\n onNodeAttempt,\n onNodeView,\n onNodeReview,\n onNodeReattempt,\n onNodeReset,\n onNodeUnassign,\n onAssignResources,\n onTestPreview,\n onTestReview,\n onTestStart,\n activeMilestoneId,\n activeTabId,\n onWidgetTabSelection,\n studentName,\n teacherName,\n parentName,\n userType,\n courseStream,\n onNodeAssignAsHomework,\n } = restMilestoneListProps;\n\n const isMilestoneActive = milestoneType === 'ACTIVE';\n const isDraftMilestone = milestoneType === 'DRAFT';\n const temporaryMilestoneId = useLazyRef(uuidv4);\n\n const handleCreatePlan = useCallback(() => {\n onCreatePlan?.(temporaryMilestoneId);\n }, [onCreatePlan, temporaryMilestoneId]);\n\n const handleOnAddOutcome = useCallback(() => {\n onAddOutcome?.();\n }, [onAddOutcome]);\n\n if (!milestones) return null;\n\n const activeMilestonePresent = milestones.some(\n milestone => milestone.milestone_state === 'ACTIVE',\n );\n const draftMilestonePresent = milestones.some(\n milestone => milestone.milestone_state === 'DRAFT',\n );\n\n return (\n <>\n {isMilestoneActive && !activeMilestonePresent && (\n <FlexView $marginBottom={40}>\n <NoActiveMilestone\n canCreatePlan={canCreatePlan}\n isDraftMilestonePresent={draftMilestonePresent}\n isFiltersAdded={isFiltersAdded}\n onCreatePlan={onCreatePlan}\n studentName={studentName}\n userType={userType}\n />\n </FlexView>\n )}\n\n {isMilestoneActive && (\n <FlexView $flexDirection=\"row\" $justifyContent=\"space-between\" $marginBottom={16}>\n <Text $renderAs=\"ac4\">Goals ({milestones.length})</Text>\n\n {userType === 'TEACHER' && (\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n <TextButton\n
|
|
1
|
+
{"version":3,"file":"milestone-list.js","sources":["../../../../../src/features/milestone/milestone-list-container/milestone-list/milestone-list.tsx"],"sourcesContent":["import type { IMilestoneListProps } from './milestone-list-types';\n\nimport React, { memo, useCallback } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport useLazyRef from '../../../hooks/use-lazy-ref';\nimport ArrowTooltip from '../../../ui/arrow-tooltip/arrow-tooltip';\nimport TextButton from '../../../ui/buttons/text-button/text-button';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport MilestoneWidget from './milestone-widget/milestone-widget';\nimport NoActiveMilestone from './no-active-milestone/no-active-milestone';\n\nconst MilestoneList: React.FC<IMilestoneListProps> = memo(\n ({ milestones, studentId, milestoneType, ...restMilestoneListProps }) => {\n const {\n canCreatePlan,\n isClassOngoing,\n isFiltersAdded,\n isStudentPresent,\n onAddChapter,\n onAddOutcome,\n onChapterClick,\n onCreatePlan,\n onDelete,\n onDraftPublish,\n onEdit,\n onCreateMilestoneTest,\n onNodeAttempt,\n onNodeView,\n onNodeReview,\n onNodeReattempt,\n onNodeReset,\n onNodeUnassign,\n onAssignResources,\n onTestPreview,\n onTestReview,\n onTestStart,\n activeMilestoneId,\n activeTabId,\n onWidgetTabSelection,\n studentName,\n teacherName,\n parentName,\n userType,\n courseStream,\n onNodeAssignAsHomework,\n } = restMilestoneListProps;\n\n const isMilestoneActive = milestoneType === 'ACTIVE';\n const isDraftMilestone = milestoneType === 'DRAFT';\n const temporaryMilestoneId = useLazyRef(uuidv4);\n\n const handleCreatePlan = useCallback(() => {\n onCreatePlan?.(temporaryMilestoneId);\n }, [onCreatePlan, temporaryMilestoneId]);\n\n const handleOnAddOutcome = useCallback(() => {\n onAddOutcome?.();\n }, [onAddOutcome]);\n\n if (!milestones) return null;\n\n const activeMilestonePresent = milestones.some(\n milestone => milestone.milestone_state === 'ACTIVE',\n );\n const draftMilestonePresent = milestones.some(\n milestone => milestone.milestone_state === 'DRAFT',\n );\n\n return (\n <>\n {isMilestoneActive && !activeMilestonePresent && (\n <FlexView $marginBottom={40}>\n <NoActiveMilestone\n canCreatePlan={canCreatePlan}\n isDraftMilestonePresent={draftMilestonePresent}\n isFiltersAdded={isFiltersAdded}\n onCreatePlan={onCreatePlan}\n studentName={studentName}\n userType={userType}\n />\n </FlexView>\n )}\n\n {isMilestoneActive && (\n <FlexView $flexDirection=\"row\" $justifyContent=\"space-between\" $marginBottom={16}>\n <Text $renderAs=\"ac4\">Goals ({milestones.length})</Text>\n\n {userType === 'TEACHER' && (\n <FlexView $flexDirection=\"row\" $flexGapX={1}>\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Goals can only be added for students who have joined the class\"\n hidden={canCreatePlan}\n position=\"bottom\"\n >\n <TextButton\n label=\"Create Goal\"\n size=\"small\"\n onClick={handleCreatePlan}\n disabled={!canCreatePlan}\n />\n </ArrowTooltip>\n <TextButton label=\"Add Milestone\" size=\"small\" onClick={handleOnAddOutcome} />\n </FlexView>\n )}\n </FlexView>\n )}\n\n {milestones.map((milestone, idx) => {\n const { id: milestoneId } = milestone;\n\n return (\n <React.Fragment key={`milestone=${milestoneId}`}>\n <MilestoneWidget\n milestone={milestone}\n studentId={studentId}\n studentName={studentName}\n parentName={parentName}\n teacherName={teacherName}\n userType={userType}\n onAddOutcome={onAddOutcome}\n onChapterClick={onChapterClick}\n isMilestoneActive={isMilestoneActive || isDraftMilestone}\n milestoneType={milestoneType}\n onEdit={onEdit}\n onCreateMilestoneTest={onCreateMilestoneTest}\n onAddChapter={onAddChapter}\n onDelete={onDelete}\n onDraftPublish={onDraftPublish}\n isClassOngoing={isClassOngoing}\n isStudentPresent={isStudentPresent}\n onAssignResources={onAssignResources}\n onNodeAttempt={onNodeAttempt}\n onNodeView={onNodeView}\n onNodeReview={onNodeReview}\n onNodeReattempt={onNodeReattempt}\n onNodeReset={onNodeReset}\n onNodeUnassign={onNodeUnassign}\n onNodeAssignAsHomework={onNodeAssignAsHomework}\n onTestPreview={onTestPreview}\n onTestReview={onTestReview}\n onTestStart={onTestStart}\n courseStream={courseStream}\n activeMilestoneId={activeMilestoneId}\n activeTabId={activeTabId}\n onWidgetTabSelection={onWidgetTabSelection}\n />\n {idx !== milestones.length - 1 && <Separator heightX={2} />}\n </React.Fragment>\n );\n })}\n </>\n );\n },\n);\n\nexport default MilestoneList;\n"],"names":["MilestoneList","memo","milestones","studentId","milestoneType","restMilestoneListProps","canCreatePlan","isClassOngoing","isFiltersAdded","isStudentPresent","onAddChapter","onAddOutcome","onChapterClick","onCreatePlan","onDelete","onDraftPublish","onEdit","onCreateMilestoneTest","onNodeAttempt","onNodeView","onNodeReview","onNodeReattempt","onNodeReset","onNodeUnassign","onAssignResources","onTestPreview","onTestReview","onTestStart","activeMilestoneId","activeTabId","onWidgetTabSelection","studentName","teacherName","parentName","userType","courseStream","onNodeAssignAsHomework","isMilestoneActive","isDraftMilestone","temporaryMilestoneId","useLazyRef","uuidv4","handleCreatePlan","useCallback","handleOnAddOutcome","activeMilestonePresent","milestone","draftMilestonePresent","jsxs","Fragment","jsx","FlexView","NoActiveMilestone","Text","ArrowTooltip","TextButton","idx","milestoneId","React","MilestoneWidget","Separator"],"mappings":"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"}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { jsxs as
|
|
1
|
+
import { jsxs as a, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { memo as f, useCallback as h } from "react";
|
|
3
3
|
import $ from "styled-components";
|
|
4
|
-
import { ILLUSTRATIONS as
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
4
|
+
import { ILLUSTRATIONS as b } from "../../../../../assets/illustrations/illustrations.js";
|
|
5
|
+
import u from "../../../../hooks/use-lazy-ref.js";
|
|
6
|
+
import w from "../../../../ui/arrow-tooltip/arrow-tooltip.js";
|
|
7
|
+
import A from "../../../../ui/buttons/button/button.js";
|
|
8
|
+
import g from "../../../../ui/image/image.js";
|
|
9
|
+
import d from "../../../../ui/layout/flex-view.js";
|
|
10
|
+
import { getNoMilestoneTitle as x } from "../../../create/utils/index.js";
|
|
11
|
+
import { StyledText as y } from "./no-active-milestone-styled.js";
|
|
12
|
+
import T from "../../../../../node_modules/uuid/dist/esm-browser/v4.js";
|
|
13
|
+
const I = $.span`
|
|
14
|
+
display: ${({ shouldShow: o }) => o ? "block" : "none"};
|
|
15
|
+
`, W = f(
|
|
16
|
+
({ userType: o, studentName: s, isDraftMilestonePresent: r, ...m }) => {
|
|
17
|
+
const { canCreatePlan: i, onCreatePlan: t, isFiltersAdded: l } = m, n = u(T), p = h(() => {
|
|
18
|
+
t == null || t(n);
|
|
19
|
+
}, [t, n]), c = x(
|
|
19
20
|
l,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
r,
|
|
22
|
+
s,
|
|
23
|
+
o
|
|
23
24
|
);
|
|
24
|
-
return /* @__PURE__ */
|
|
25
|
-
|
|
25
|
+
return /* @__PURE__ */ a(
|
|
26
|
+
d,
|
|
26
27
|
{
|
|
27
28
|
$flexDirection: "row",
|
|
28
29
|
$gapX: 1.5,
|
|
@@ -33,26 +34,35 @@ const T = $.span`
|
|
|
33
34
|
$justifyContent: "space-between",
|
|
34
35
|
$alignItems: "center",
|
|
35
36
|
children: [
|
|
36
|
-
/* @__PURE__ */
|
|
37
|
-
/* @__PURE__ */
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
/* @__PURE__ */ a(d, { $flexGapX: 1, children: [
|
|
38
|
+
/* @__PURE__ */ e(y, { $renderAs: "ab2", $widthX: 19.5, children: c }),
|
|
39
|
+
o === "TEACHER" && /* @__PURE__ */ e(I, { shouldShow: !l, children: !r && /* @__PURE__ */ e(
|
|
40
|
+
w,
|
|
40
41
|
{
|
|
41
|
-
renderAs: "
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
renderAs: "primary",
|
|
43
|
+
tooltipItem: "Goals can only be added for students who have joined the class",
|
|
44
|
+
hidden: i,
|
|
45
|
+
position: "bottom",
|
|
46
|
+
children: /* @__PURE__ */ e(
|
|
47
|
+
A,
|
|
48
|
+
{
|
|
49
|
+
renderAs: "secondary",
|
|
50
|
+
size: "small",
|
|
51
|
+
label: "Add a Goal",
|
|
52
|
+
onClick: p,
|
|
53
|
+
disabled: !i
|
|
54
|
+
}
|
|
55
|
+
)
|
|
46
56
|
}
|
|
47
57
|
) })
|
|
48
58
|
] }),
|
|
49
|
-
/* @__PURE__ */
|
|
50
|
-
|
|
59
|
+
/* @__PURE__ */ e(
|
|
60
|
+
g,
|
|
51
61
|
{
|
|
52
62
|
withLoader: !1,
|
|
53
63
|
width: 240,
|
|
54
64
|
height: 100,
|
|
55
|
-
src:
|
|
65
|
+
src: b.PUZZLE_STUDENT,
|
|
56
66
|
alt: "learning-planner"
|
|
57
67
|
}
|
|
58
68
|
)
|
|
@@ -62,6 +72,6 @@ const T = $.span`
|
|
|
62
72
|
}
|
|
63
73
|
);
|
|
64
74
|
export {
|
|
65
|
-
|
|
75
|
+
W as default
|
|
66
76
|
};
|
|
67
77
|
//# sourceMappingURL=no-active-milestone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-active-milestone.js","sources":["../../../../../../src/features/milestone/milestone-list-container/milestone-list/no-active-milestone/no-active-milestone.tsx"],"sourcesContent":["import type { INoActiveMilestoneProps } from './no-active-milestone-types';\n\nimport { useCallback, type FC, memo } from 'react';\nimport styled from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport useLazyRef from '../../../../hooks/use-lazy-ref';\nimport Button from '../../../../ui/buttons/button/button';\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { getNoMilestoneTitle } from '../../../create/utils';\nimport * as Styled from './no-active-milestone-styled';\n\nconst ButtonWrapper = styled.span<{ shouldShow: boolean }>`\n display: ${({ shouldShow }) => (shouldShow ? 'block' : 'none')};\n`;\n\nconst NoActiveMilestone: FC<INoActiveMilestoneProps> = memo(\n ({ userType, studentName, isDraftMilestonePresent, ...restNoActiveMilestoneProps }) => {\n const { canCreatePlan, onCreatePlan, isFiltersAdded } = restNoActiveMilestoneProps;\n const temporaryMilestoneId = useLazyRef(uuidv4);\n\n const handleCreatePlan = useCallback(() => {\n onCreatePlan?.(temporaryMilestoneId);\n }, [onCreatePlan, temporaryMilestoneId]);\n\n const title = getNoMilestoneTitle(\n isFiltersAdded,\n isDraftMilestonePresent,\n studentName,\n userType,\n );\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $gapX={1.5}\n $gutterX={1.5}\n $borderColor=\"WHITE_4\"\n $background=\"YELLOW_1\"\n $flexGapX={1}\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n <FlexView $flexGapX={1}>\n <Styled.StyledText $renderAs=\"ab2\" $widthX={19.5}>\n {title}\n </Styled.StyledText>\n\n {userType === 'TEACHER' && (\n <ButtonWrapper shouldShow={!isFiltersAdded}>\n {!isDraftMilestonePresent && (\n <
|
|
1
|
+
{"version":3,"file":"no-active-milestone.js","sources":["../../../../../../src/features/milestone/milestone-list-container/milestone-list/no-active-milestone/no-active-milestone.tsx"],"sourcesContent":["import type { INoActiveMilestoneProps } from './no-active-milestone-types';\n\nimport { useCallback, type FC, memo } from 'react';\nimport styled from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { ILLUSTRATIONS } from '../../../../../assets/illustrations/illustrations';\nimport useLazyRef from '../../../../hooks/use-lazy-ref';\nimport ArrowTooltip from '../../../../ui/arrow-tooltip/arrow-tooltip';\nimport Button from '../../../../ui/buttons/button/button';\nimport Image from '../../../../ui/image/image';\nimport FlexView from '../../../../ui/layout/flex-view';\nimport { getNoMilestoneTitle } from '../../../create/utils';\nimport * as Styled from './no-active-milestone-styled';\n\nconst ButtonWrapper = styled.span<{ shouldShow: boolean }>`\n display: ${({ shouldShow }) => (shouldShow ? 'block' : 'none')};\n`;\n\nconst NoActiveMilestone: FC<INoActiveMilestoneProps> = memo(\n ({ userType, studentName, isDraftMilestonePresent, ...restNoActiveMilestoneProps }) => {\n const { canCreatePlan, onCreatePlan, isFiltersAdded } = restNoActiveMilestoneProps;\n const temporaryMilestoneId = useLazyRef(uuidv4);\n\n const handleCreatePlan = useCallback(() => {\n onCreatePlan?.(temporaryMilestoneId);\n }, [onCreatePlan, temporaryMilestoneId]);\n\n const title = getNoMilestoneTitle(\n isFiltersAdded,\n isDraftMilestonePresent,\n studentName,\n userType,\n );\n\n return (\n <FlexView\n $flexDirection=\"row\"\n $gapX={1.5}\n $gutterX={1.5}\n $borderColor=\"WHITE_4\"\n $background=\"YELLOW_1\"\n $flexGapX={1}\n $justifyContent=\"space-between\"\n $alignItems=\"center\"\n >\n <FlexView $flexGapX={1}>\n <Styled.StyledText $renderAs=\"ab2\" $widthX={19.5}>\n {title}\n </Styled.StyledText>\n\n {userType === 'TEACHER' && (\n <ButtonWrapper shouldShow={!isFiltersAdded}>\n {!isDraftMilestonePresent && (\n <ArrowTooltip\n renderAs=\"primary\"\n tooltipItem=\"Goals can only be added for students who have joined the class\"\n hidden={canCreatePlan}\n position=\"bottom\"\n >\n <Button\n renderAs=\"secondary\"\n size=\"small\"\n label=\"Add a Goal\"\n onClick={handleCreatePlan}\n disabled={!canCreatePlan}\n />\n </ArrowTooltip>\n )}\n </ButtonWrapper>\n )}\n </FlexView>\n\n <Image\n withLoader={false}\n width={240}\n height={100}\n src={ILLUSTRATIONS.PUZZLE_STUDENT}\n alt=\"learning-planner\"\n />\n </FlexView>\n );\n },\n);\n\nexport default NoActiveMilestone;\n"],"names":["ButtonWrapper","styled","shouldShow","NoActiveMilestone","memo","userType","studentName","isDraftMilestonePresent","restNoActiveMilestoneProps","canCreatePlan","onCreatePlan","isFiltersAdded","temporaryMilestoneId","useLazyRef","uuidv4","handleCreatePlan","useCallback","title","getNoMilestoneTitle","jsxs","FlexView","jsx","Styled.StyledText","ArrowTooltip","Button","Image","ILLUSTRATIONS"],"mappings":";;;;;;;;;;;;AAeA,MAAMA,IAAgBC,EAAO;AAAA,aAChB,CAAC,EAAE,YAAAC,EAAA,MAAkBA,IAAa,UAAU,MAAO;AAAA,GAG1DC,IAAiDC;AAAA,EACrD,CAAC,EAAE,UAAAC,GAAU,aAAAC,GAAa,yBAAAC,GAAyB,GAAGC,QAAiC;AACrF,UAAM,EAAE,eAAAC,GAAe,cAAAC,GAAc,gBAAAC,EAAA,IAAmBH,GAClDI,IAAuBC,EAAWC,CAAM,GAExCC,IAAmBC,EAAY,MAAM;AACzC,MAAAN,KAAA,QAAAA,EAAeE;AAAA,IAAoB,GAClC,CAACF,GAAcE,CAAoB,CAAC,GAEjCK,IAAQC;AAAA,MACZP;AAAA,MACAJ;AAAA,MACAD;AAAA,MACAD;AAAA,IAAA;AAIA,WAAA,gBAAAc;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,gBAAe;AAAA,QACf,OAAO;AAAA,QACP,UAAU;AAAA,QACV,cAAa;AAAA,QACb,aAAY;AAAA,QACZ,WAAW;AAAA,QACX,iBAAgB;AAAA,QAChB,aAAY;AAAA,QAEZ,UAAA;AAAA,UAAC,gBAAAD,EAAAC,GAAA,EAAS,WAAW,GACnB,UAAA;AAAA,YAAA,gBAAAC,EAACC,GAAA,EAAkB,WAAU,OAAM,SAAS,MACzC,UACHL,GAAA;AAAA,YAECZ,MAAa,aACX,gBAAAgB,EAAArB,GAAA,EAAc,YAAY,CAACW,GACzB,WAACJ,KACA,gBAAAc;AAAA,cAACE;AAAA,cAAA;AAAA,gBACC,UAAS;AAAA,gBACT,aAAY;AAAA,gBACZ,QAAQd;AAAA,gBACR,UAAS;AAAA,gBAET,UAAA,gBAAAY;AAAA,kBAACG;AAAA,kBAAA;AAAA,oBACC,UAAS;AAAA,oBACT,MAAK;AAAA,oBACL,OAAM;AAAA,oBACN,SAAST;AAAA,oBACT,UAAU,CAACN;AAAA,kBAAA;AAAA,gBACb;AAAA,cAAA;AAAA,YAAA,GAGN;AAAA,UAAA,GAEJ;AAAA,UAEA,gBAAAY;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,YAAY;AAAA,cACZ,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,KAAKC,EAAc;AAAA,cACnB,KAAI;AAAA,YAAA;AAAA,UACN;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
|
|
@@ -1,42 +1,46 @@
|
|
|
1
|
-
import { useCallback as
|
|
2
|
-
import
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
return { forceAppend:
|
|
6
|
-
({ question:
|
|
7
|
-
const
|
|
8
|
-
let
|
|
9
|
-
|
|
10
|
-
const n = window.LearnosityApp.init(
|
|
1
|
+
import { useCallback as l } from "react";
|
|
2
|
+
import m from "../../../hooks/use-is-unmounted.js";
|
|
3
|
+
const L = (i) => {
|
|
4
|
+
const t = m();
|
|
5
|
+
return { forceAppend: l(
|
|
6
|
+
({ question: o, response: u, removeOldElements: a, callback: p }) => {
|
|
7
|
+
const c = JSON.parse(i), r = document.querySelector(`.learnosity-response.question-${o.response_id}`), s = r == null ? void 0 : r.parentNode;
|
|
8
|
+
let d = !1;
|
|
9
|
+
c.type = "local_practice";
|
|
10
|
+
const n = window.LearnosityApp.init(c, {
|
|
11
11
|
readyListener: () => {
|
|
12
|
-
if (!
|
|
13
|
-
if (!
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
if (!t.current) {
|
|
13
|
+
if (!d)
|
|
14
|
+
a === "before" && s && s.childNodes.forEach((e) => {
|
|
15
|
+
e !== r && e.remove();
|
|
16
|
+
}), n.append({
|
|
17
|
+
questions: [o],
|
|
16
18
|
responses: {
|
|
17
|
-
[
|
|
18
|
-
...
|
|
19
|
+
[o.response_id]: {
|
|
20
|
+
...u
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
});
|
|
22
24
|
else {
|
|
23
|
-
const e = n.question(
|
|
25
|
+
const e = n.question(o.response_id);
|
|
24
26
|
e && (e.disable(), e.validate({
|
|
25
27
|
showCorrectAnswers: !0
|
|
26
|
-
})), n.renderMath("mathjax"),
|
|
28
|
+
})), n.renderMath("mathjax"), a === "after" && s && s.childNodes.forEach((f) => {
|
|
29
|
+
f !== r && f.remove();
|
|
30
|
+
}), p();
|
|
27
31
|
}
|
|
28
|
-
|
|
32
|
+
d = !0;
|
|
29
33
|
}
|
|
30
34
|
},
|
|
31
35
|
errorListener: (e) => {
|
|
32
|
-
|
|
36
|
+
t.current || p(e);
|
|
33
37
|
}
|
|
34
38
|
});
|
|
35
39
|
},
|
|
36
|
-
[
|
|
40
|
+
[i, t]
|
|
37
41
|
) };
|
|
38
42
|
};
|
|
39
43
|
export {
|
|
40
|
-
|
|
44
|
+
L as default
|
|
41
45
|
};
|
|
42
46
|
//# sourceMappingURL=use-learnosity-append.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-learnosity-append.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-learnosity-append.ts"],"sourcesContent":["import type {\n ILearnosityError,\n ILearnosityQuestionResponse,\n IWorksheetQuestion,\n} from '../worksheet-types';\nimport type { MutableRefObject } from 'react';\n\nimport { useCallback } from 'react';\n\nimport useIsUnmounted from '../../../hooks/use-is-unmounted';\n\ninterface IForceAppend {\n (options: {\n question: IWorksheetQuestion;\n response: ILearnosityQuestionResponse;\n callback: (error?: ILearnosityError) => void;\n }): void;\n}\n\ninterface IUseLearnosityAppend {\n (\n signedRequest: string,\n loggerRef?: MutableRefObject<(eventName: string, data?: Record<string, unknown>) => void>,\n ): { forceAppend: IForceAppend };\n}\n\nconst useLearnosityAppend: IUseLearnosityAppend = signedRequest => {\n const unmountedRef = useIsUnmounted();\n const forceAppend = useCallback<IForceAppend>(\n ({ question, response, callback }) => {\n const parsedRequest = JSON.parse(signedRequest);\n let readyListenerFiredOnce = false;\n\n parsedRequest.type = 'local_practice';\n\n const learnosity = window.LearnosityApp.init(parsedRequest, {\n readyListener: () => {\n if (unmountedRef.current) return;\n\n if (!readyListenerFiredOnce) {\n learnosity.append({\n questions: [question],\n responses: {\n [question.response_id]: {\n ...response,\n },\n },\n });\n } else {\n const q = learnosity.question(question.response_id);\n\n if (q) {\n q.disable();\n q.validate({\n showCorrectAnswers: true,\n });\n }\n\n learnosity.renderMath('mathjax');\n\n callback();\n }\n\n readyListenerFiredOnce = true;\n },\n errorListener: (error: ILearnosityError) => {\n if (unmountedRef.current) return;\n\n callback(error as ILearnosityError);\n },\n });\n },\n [signedRequest, unmountedRef],\n );\n\n return { forceAppend };\n};\n\nexport default useLearnosityAppend;\n"],"names":["useLearnosityAppend","signedRequest","unmountedRef","useIsUnmounted","useCallback","question","response","callback","parsedRequest","readyListenerFiredOnce","learnosity","q","error"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"use-learnosity-append.js","sources":["../../../../../src/features/worksheet/worksheet/hooks/use-learnosity-append.ts"],"sourcesContent":["import type {\n ILearnosityError,\n ILearnosityQuestionResponse,\n IWorksheetQuestion,\n} from '../worksheet-types';\nimport type { MutableRefObject } from 'react';\n\nimport { useCallback } from 'react';\n\nimport useIsUnmounted from '../../../hooks/use-is-unmounted';\n\ninterface IForceAppend {\n (options: {\n question: IWorksheetQuestion;\n response: ILearnosityQuestionResponse;\n callback: (error?: ILearnosityError) => void;\n removeOldElements: 'before' | 'after';\n }): void;\n}\n\ninterface IUseLearnosityAppend {\n (\n signedRequest: string,\n loggerRef?: MutableRefObject<(eventName: string, data?: Record<string, unknown>) => void>,\n ): { forceAppend: IForceAppend };\n}\n\nconst useLearnosityAppend: IUseLearnosityAppend = signedRequest => {\n const unmountedRef = useIsUnmounted();\n const forceAppend = useCallback<IForceAppend>(\n ({ question, response, removeOldElements, callback }) => {\n const parsedRequest = JSON.parse(signedRequest);\n const $el = document.querySelector(`.learnosity-response.question-${question.response_id}`);\n const $parentEl = $el?.parentNode;\n let readyListenerFiredOnce = false;\n\n parsedRequest.type = 'local_practice';\n\n const learnosity = window.LearnosityApp.init(parsedRequest, {\n readyListener: () => {\n if (unmountedRef.current) return;\n\n if (!readyListenerFiredOnce) {\n if (removeOldElements === 'before' && $parentEl) {\n $parentEl.childNodes.forEach(child => {\n if (child !== $el) {\n child.remove();\n }\n });\n }\n\n learnosity.append({\n questions: [question],\n responses: {\n [question.response_id]: {\n ...response,\n },\n },\n });\n } else {\n const q = learnosity.question(question.response_id);\n\n if (q) {\n q.disable();\n q.validate({\n showCorrectAnswers: true,\n });\n }\n\n learnosity.renderMath('mathjax');\n\n if (removeOldElements === 'after' && $parentEl) {\n $parentEl.childNodes.forEach(child => {\n if (child !== $el) {\n child.remove();\n }\n });\n }\n\n callback();\n }\n\n readyListenerFiredOnce = true;\n },\n errorListener: (error: ILearnosityError) => {\n if (unmountedRef.current) return;\n\n callback(error as ILearnosityError);\n },\n });\n },\n [signedRequest, unmountedRef],\n );\n\n return { forceAppend };\n};\n\nexport default useLearnosityAppend;\n"],"names":["useLearnosityAppend","signedRequest","unmountedRef","useIsUnmounted","useCallback","question","response","removeOldElements","callback","parsedRequest","$el","$parentEl","readyListenerFiredOnce","learnosity","child","q","error"],"mappings":";;AA2BA,MAAMA,IAA4C,CAAiBC,MAAA;AACjE,QAAMC,IAAeC;AAkErB,SAAO,EAAE,aAjEWC;AAAA,IAClB,CAAC,EAAE,UAAAC,GAAU,UAAAC,GAAU,mBAAAC,GAAmB,UAAAC,QAAe;AACjD,YAAAC,IAAgB,KAAK,MAAMR,CAAa,GACxCS,IAAM,SAAS,cAAc,iCAAiCL,EAAS,WAAW,EAAE,GACpFM,IAAYD,KAAA,gBAAAA,EAAK;AACvB,UAAIE,IAAyB;AAE7B,MAAAH,EAAc,OAAO;AAErB,YAAMI,IAAa,OAAO,cAAc,KAAKJ,GAAe;AAAA,QAC1D,eAAe,MAAM;AACnB,cAAI,CAAAP,EAAa,SAEjB;AAAA,gBAAI,CAACU;AACC,cAAAL,MAAsB,YAAYI,KAC1BA,EAAA,WAAW,QAAQ,CAASG,MAAA;AACpC,gBAAIA,MAAUJ,KACZI,EAAM,OAAO;AAAA,cACf,CACD,GAGHD,EAAW,OAAO;AAAA,gBAChB,WAAW,CAACR,CAAQ;AAAA,gBACpB,WAAW;AAAA,kBACT,CAACA,EAAS,WAAW,GAAG;AAAA,oBACtB,GAAGC;AAAA,kBACL;AAAA,gBACF;AAAA,cAAA,CACD;AAAA,iBACI;AACL,oBAAMS,IAAIF,EAAW,SAASR,EAAS,WAAW;AAElD,cAAIU,MACFA,EAAE,QAAQ,GACVA,EAAE,SAAS;AAAA,gBACT,oBAAoB;AAAA,cAAA,CACrB,IAGHF,EAAW,WAAW,SAAS,GAE3BN,MAAsB,WAAWI,KACzBA,EAAA,WAAW,QAAQ,CAASG,MAAA;AACpC,gBAAIA,MAAUJ,KACZI,EAAM,OAAO;AAAA,cACf,CACD,GAGMN;YACX;AAEyB,YAAAI,IAAA;AAAA;AAAA,QAC3B;AAAA,QACA,eAAe,CAACI,MAA4B;AAC1C,UAAId,EAAa,WAEjBM,EAASQ,CAAyB;AAAA,QACpC;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACf,GAAeC,CAAY;AAAA,EAAA,EAGT;AACvB;"}
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { memo as
|
|
3
|
-
import
|
|
4
|
-
import { LearnosityQuestionContainer as
|
|
5
|
-
const
|
|
1
|
+
import { jsx as v } from "react/jsx-runtime";
|
|
2
|
+
import { memo as R, useRef as E, useCallback as A, useEffect as m } from "react";
|
|
3
|
+
import g from "../hooks/use-learnosity-append.js";
|
|
4
|
+
import { LearnosityQuestionContainer as b } from "./worksheet-question-styled.js";
|
|
5
|
+
const N = R(
|
|
6
6
|
({
|
|
7
|
-
signedRequest:
|
|
7
|
+
signedRequest: S,
|
|
8
8
|
appended: o,
|
|
9
|
-
canRender:
|
|
9
|
+
canRender: I,
|
|
10
10
|
canForceAppend: a,
|
|
11
|
-
question:
|
|
11
|
+
question: t,
|
|
12
12
|
response: s,
|
|
13
13
|
learnosity: w,
|
|
14
|
-
isConceptIntro:
|
|
15
|
-
simState:
|
|
14
|
+
isConceptIntro: M,
|
|
15
|
+
simState: c,
|
|
16
16
|
onMediaStateChange: _
|
|
17
17
|
}) => {
|
|
18
|
-
const
|
|
18
|
+
const l = E(null), n = E(s), { forceAppend: p } = g(S), d = A(
|
|
19
19
|
(e) => {
|
|
20
|
-
const { source: r, data: i } = e, { type:
|
|
21
|
-
|
|
20
|
+
const { source: r, data: i } = e, { type: u } = i ?? {};
|
|
21
|
+
u === "SIM_IS_READY" ? r.postMessage(
|
|
22
22
|
{
|
|
23
23
|
type: "SIMULATION_CONFIG",
|
|
24
24
|
payload: {
|
|
25
25
|
userRole: a ? "teacher" : "student",
|
|
26
|
-
simulationState:
|
|
26
|
+
simulationState: c
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"*"
|
|
30
|
-
) :
|
|
30
|
+
) : u === "SIM_STATE_UPDATE" && _(t, "SIMULATION", e.data.payload);
|
|
31
31
|
},
|
|
32
|
-
[a,
|
|
33
|
-
), y =
|
|
32
|
+
[a, c, _, t]
|
|
33
|
+
), y = A(
|
|
34
34
|
(e) => {
|
|
35
35
|
window.requestAnimationFrame(() => {
|
|
36
|
-
var i,
|
|
36
|
+
var i, u, T;
|
|
37
37
|
const r = document.createElement("div");
|
|
38
|
-
r.classList.add("learnosity-response"), r.classList.add(`question-${
|
|
38
|
+
r.classList.add("learnosity-response"), r.classList.add(`question-${t.response_id}`), (u = (i = l.current) == null ? void 0 : i.children[0]) == null || u.querySelectorAll(".lrn_drawing svg path").forEach((f) => {
|
|
39
39
|
f.id = `${f.id} + temp`;
|
|
40
|
-
}), (T =
|
|
41
|
-
question:
|
|
40
|
+
}), (T = l.current) == null || T.append(r), p({
|
|
41
|
+
question: t,
|
|
42
42
|
response: e,
|
|
43
|
+
removeOldElements: t.type === "numberline" ? "before" : "after",
|
|
43
44
|
callback: (f) => {
|
|
44
|
-
|
|
45
|
-
f || ((A = (v = c.current) == null ? void 0 : v.children[0]) == null || A.remove(), t.current && t.current !== e ? y(t.current) : t.current = void 0);
|
|
45
|
+
f || (n.current && n.current !== e ? y(n.current) : n.current = void 0);
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
48
|
});
|
|
49
49
|
},
|
|
50
|
-
[p,
|
|
51
|
-
), L =
|
|
50
|
+
[p, t]
|
|
51
|
+
), L = E(!1);
|
|
52
52
|
return m(() => {
|
|
53
53
|
let e;
|
|
54
|
-
return
|
|
55
|
-
const r =
|
|
54
|
+
return I && (L.current || (e = window.requestAnimationFrame(() => {
|
|
55
|
+
const r = n.current ?? s;
|
|
56
56
|
L.current = !0, w.appendQuestion({
|
|
57
|
-
questions: [
|
|
57
|
+
questions: [t],
|
|
58
58
|
...r ? {
|
|
59
59
|
responses: {
|
|
60
|
-
[
|
|
60
|
+
[t.response_id]: {
|
|
61
61
|
// Learnosity is mutating the response object, so we need to clone it
|
|
62
62
|
...r
|
|
63
63
|
}
|
|
@@ -67,37 +67,37 @@ const D = g(
|
|
|
67
67
|
}))), () => {
|
|
68
68
|
e && window.cancelAnimationFrame(e);
|
|
69
69
|
};
|
|
70
|
-
}, [
|
|
70
|
+
}, [I, w, t, s]), m(() => {
|
|
71
71
|
var e;
|
|
72
|
-
return o && (
|
|
72
|
+
return o && (n.current = void 0, (e = l.current) != null && e.querySelector("iframe") && window.addEventListener("message", d)), () => {
|
|
73
73
|
window.removeEventListener("message", d);
|
|
74
74
|
};
|
|
75
75
|
}, [o, d]), m(() => {
|
|
76
76
|
var e, r;
|
|
77
|
-
if (
|
|
78
|
-
const i = (e =
|
|
77
|
+
if (c && o) {
|
|
78
|
+
const i = (e = l.current) == null ? void 0 : e.querySelector("iframe");
|
|
79
79
|
i && ((r = i.contentWindow) == null || r.postMessage(
|
|
80
80
|
{
|
|
81
81
|
type: "SIM_STATE_UPDATE",
|
|
82
|
-
payload:
|
|
82
|
+
payload: c
|
|
83
83
|
},
|
|
84
84
|
"*"
|
|
85
85
|
));
|
|
86
86
|
}
|
|
87
|
-
}, [o, a,
|
|
88
|
-
o && s && a && s !==
|
|
89
|
-
}, [o, a, s, y]), /* @__PURE__ */
|
|
90
|
-
|
|
87
|
+
}, [o, a, c]), m(() => {
|
|
88
|
+
o && s && a && s !== n.current && (n.current ? n.current = s : (n.current = s, y(s)));
|
|
89
|
+
}, [o, a, s, y]), /* @__PURE__ */ v(
|
|
90
|
+
b,
|
|
91
91
|
{
|
|
92
|
-
ref:
|
|
93
|
-
$isConceptIntro:
|
|
92
|
+
ref: l,
|
|
93
|
+
$isConceptIntro: M,
|
|
94
94
|
$isTeacher: a,
|
|
95
|
-
children: /* @__PURE__ */
|
|
95
|
+
children: /* @__PURE__ */ v("div", { className: `learnosity-response question-${t.response_id}` })
|
|
96
96
|
}
|
|
97
97
|
);
|
|
98
98
|
}
|
|
99
99
|
);
|
|
100
100
|
export {
|
|
101
|
-
|
|
101
|
+
N as default
|
|
102
102
|
};
|
|
103
103
|
//# sourceMappingURL=learnosity-question.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnosity-question.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-question/learnosity-question.tsx"],"sourcesContent":["import type { ILearnosityQuestionResponse } from '../worksheet-types';\nimport type { ILearnosityQuestionProps } from './worksheet-question-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport useLearnosityAppend from '../hooks/use-learnosity-append';\nimport * as Styled from './worksheet-question-styled';\n\nconst LearnosityQuestion: FC<ILearnosityQuestionProps> = memo(\n ({\n signedRequest,\n appended,\n canRender,\n canForceAppend,\n question,\n response,\n learnosity,\n isConceptIntro,\n simState,\n onMediaStateChange,\n }) => {\n const containerElementRef = useRef<HTMLDivElement>(null);\n const latestQuestionResponseRef = useRef<ILearnosityQuestionResponse | undefined>(response);\n const { forceAppend } = useLearnosityAppend(signedRequest);\n\n const handleSimIframeMessage = useCallback(\n (event: MessageEvent) => {\n const { source, data } = event;\n const { type } = data ?? ({} as { type: string });\n\n if (type === 'SIM_IS_READY') {\n (source as Window).postMessage(\n {\n type: 'SIMULATION_CONFIG',\n payload: {\n userRole: canForceAppend ? 'teacher' : 'student',\n simulationState: simState,\n },\n },\n '*',\n );\n } else if (type === 'SIM_STATE_UPDATE') {\n onMediaStateChange(question, 'SIMULATION', event.data.payload);\n }\n },\n [canForceAppend, simState, onMediaStateChange, question],\n );\n\n const updateResponse = useCallback(\n (newResponse: ILearnosityQuestionResponse) => {\n window.requestAnimationFrame(() => {\n const questionElement = document.createElement('div');\n\n questionElement.classList.add('learnosity-response');\n questionElement.classList.add(`question-${question.response_id}`);\n // Drawing questions looks for already appended path elements with id, if present it will not append the path, to overcome this issue we are adding temp to the id\n containerElementRef.current?.children[0]?.querySelectorAll('svg path').forEach(path => {\n
|
|
1
|
+
{"version":3,"file":"learnosity-question.js","sources":["../../../../../src/features/worksheet/worksheet/worksheet-question/learnosity-question.tsx"],"sourcesContent":["import type { ILearnosityQuestionResponse } from '../worksheet-types';\nimport type { ILearnosityQuestionProps } from './worksheet-question-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport useLearnosityAppend from '../hooks/use-learnosity-append';\nimport * as Styled from './worksheet-question-styled';\n\nconst LearnosityQuestion: FC<ILearnosityQuestionProps> = memo(\n ({\n signedRequest,\n appended,\n canRender,\n canForceAppend,\n question,\n response,\n learnosity,\n isConceptIntro,\n simState,\n onMediaStateChange,\n }) => {\n const containerElementRef = useRef<HTMLDivElement>(null);\n const latestQuestionResponseRef = useRef<ILearnosityQuestionResponse | undefined>(response);\n const { forceAppend } = useLearnosityAppend(signedRequest);\n\n const handleSimIframeMessage = useCallback(\n (event: MessageEvent) => {\n const { source, data } = event;\n const { type } = data ?? ({} as { type: string });\n\n if (type === 'SIM_IS_READY') {\n (source as Window).postMessage(\n {\n type: 'SIMULATION_CONFIG',\n payload: {\n userRole: canForceAppend ? 'teacher' : 'student',\n simulationState: simState,\n },\n },\n '*',\n );\n } else if (type === 'SIM_STATE_UPDATE') {\n onMediaStateChange(question, 'SIMULATION', event.data.payload);\n }\n },\n [canForceAppend, simState, onMediaStateChange, question],\n );\n\n const updateResponse = useCallback(\n (newResponse: ILearnosityQuestionResponse) => {\n window.requestAnimationFrame(() => {\n const questionElement = document.createElement('div');\n\n questionElement.classList.add('learnosity-response');\n questionElement.classList.add(`question-${question.response_id}`);\n // Drawing questions looks for already appended path elements with id, if present it will not append the path, to overcome this issue we are adding temp to the id\n containerElementRef.current?.children[0]\n ?.querySelectorAll('.lrn_drawing svg path')\n .forEach(path => {\n path.id = `${path.id} + temp`;\n });\n\n containerElementRef.current?.append(questionElement);\n forceAppend({\n question,\n response: newResponse,\n removeOldElements: question.type === 'numberline' ? 'before' : 'after',\n callback: error => {\n if (error) return;\n\n if (\n latestQuestionResponseRef.current &&\n latestQuestionResponseRef.current !== newResponse\n )\n updateResponse(latestQuestionResponseRef.current);\n else latestQuestionResponseRef.current = undefined;\n },\n });\n });\n },\n [forceAppend, question],\n );\n\n const appendQuestionCalledRef = useRef(false);\n\n useEffect(() => {\n let requestId: number;\n\n if (canRender) {\n if (!appendQuestionCalledRef.current) {\n requestId = window.requestAnimationFrame(() => {\n const appenndableResponse = latestQuestionResponseRef.current ?? response;\n\n appendQuestionCalledRef.current = true;\n learnosity.appendQuestion({\n questions: [question],\n ...(appenndableResponse\n ? {\n responses: {\n [question.response_id]: {\n // Learnosity is mutating the response object, so we need to clone it\n ...appenndableResponse,\n },\n },\n }\n : {}),\n });\n });\n }\n }\n\n return () => {\n if (requestId) window.cancelAnimationFrame(requestId);\n };\n }, [canRender, learnosity, question, response]);\n\n useEffect(() => {\n if (appended) {\n latestQuestionResponseRef.current = undefined;\n\n if (containerElementRef.current?.querySelector('iframe')) {\n window.addEventListener('message', handleSimIframeMessage);\n }\n }\n\n return () => {\n window.removeEventListener('message', handleSimIframeMessage);\n };\n }, [appended, handleSimIframeMessage]);\n\n useEffect(() => {\n if (simState && appended) {\n const simIframe = containerElementRef.current?.querySelector('iframe');\n\n if (simIframe) {\n simIframe.contentWindow?.postMessage(\n {\n type: 'SIM_STATE_UPDATE',\n payload: simState,\n },\n '*',\n );\n }\n }\n }, [appended, canForceAppend, simState]);\n\n useEffect(() => {\n if (appended && response && canForceAppend) {\n if (response !== latestQuestionResponseRef.current) {\n if (!latestQuestionResponseRef.current) {\n latestQuestionResponseRef.current = response;\n updateResponse(response);\n } else {\n latestQuestionResponseRef.current = response;\n }\n }\n }\n }, [appended, canForceAppend, response, updateResponse]);\n\n return (\n <Styled.LearnosityQuestionContainer\n ref={containerElementRef}\n $isConceptIntro={isConceptIntro}\n $isTeacher={canForceAppend}\n >\n <div className={`learnosity-response question-${question.response_id}`} />\n </Styled.LearnosityQuestionContainer>\n );\n },\n);\n\nexport default LearnosityQuestion;\n"],"names":["LearnosityQuestion","memo","signedRequest","appended","canRender","canForceAppend","question","response","learnosity","isConceptIntro","simState","onMediaStateChange","containerElementRef","useRef","latestQuestionResponseRef","forceAppend","useLearnosityAppend","handleSimIframeMessage","useCallback","event","source","data","type","updateResponse","newResponse","questionElement","_b","_a","path","_c","error","appendQuestionCalledRef","useEffect","requestId","appenndableResponse","simIframe","jsx","Styled.LearnosityQuestionContainer"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -350,7 +350,7 @@ export declare const EditMilestoneModal: React_2.FC<IEditMilestoneModalProps>;
|
|
|
350
350
|
export declare const EditStarIcon: React.FC<React.SVGProps<SVGSVGElement>>;
|
|
351
351
|
|
|
352
352
|
export declare enum ELeaderboardType {
|
|
353
|
-
BI_WEEKLY = "
|
|
353
|
+
BI_WEEKLY = "bi_weekly",
|
|
354
354
|
ALL_TIME = "global",
|
|
355
355
|
ALL_TIME_STREAK = "globalStreak"
|
|
356
356
|
}
|