@cuemath/leap 2.8.24-rj-0 → 2.8.24-rj-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/analytics-events/platform-events-student.js +6 -5
- package/dist/features/analytics-events/platform-events-student.js.map +1 -1
- package/dist/features/circle-games/enum/circle-action-ids.js +5 -0
- package/dist/features/circle-games/enum/circle-action-ids.js.map +1 -0
- package/dist/features/circle-games/games/web-view/web-view-types.js.map +1 -1
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js +39 -38
- package/dist/features/trial-session/comps/trial-circle-game/trial-circle-game.js.map +1 -1
- package/dist/features/trial-session/trial-session-types.js.map +1 -1
- package/dist/features/trial-session/trial-session-view.js +68 -66
- package/dist/features/trial-session/trial-session-view.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +155 -153
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
import { PLUGINS as t } from "../../node_modules/@cuemath/analytics-v2/dist/constants.js";
|
2
|
-
var
|
3
|
-
const
|
2
|
+
var i = /* @__PURE__ */ ((e) => (e.PAGE_VIEWED = "page_viewed", e.CUSTOM_TEST_SUBMITTED = "custom_test_submitted", e.ACTIVITY_STARTED = "activity_started", e.ACTIVITY_TUTORIAL_SEEN = "activity_tutorial_seen", e.STREAK_ICON_CLICKED = "streak_icon_clicked", e.LEADERBOARD_BUTTON_CLICKED = "leaderboard_button_clicked", e.ONBOARDING_STEP_VIEWED = "onboarding_step_viewed", e.ONBOARDING_STEP_COMPLETED = "onboarding_step_completed", e.COACHMARK_DISMISSED = "coachmark_dismissed", e))(i || {});
|
3
|
+
const I = {
|
4
4
|
page_viewed: [t.MIXPANEL],
|
5
5
|
// circle on leap mixpanel events
|
6
6
|
activity_started: [t.MIXPANEL],
|
@@ -8,10 +8,11 @@ const o = {
|
|
8
8
|
streak_icon_clicked: [t.MIXPANEL],
|
9
9
|
leaderboard_button_clicked: [t.MIXPANEL],
|
10
10
|
onboarding_step_viewed: [t.MIXPANEL],
|
11
|
-
onboarding_step_completed: [t.MIXPANEL]
|
11
|
+
onboarding_step_completed: [t.MIXPANEL],
|
12
|
+
coachmark_dismissed: [t.MIXPANEL]
|
12
13
|
};
|
13
14
|
export {
|
14
|
-
|
15
|
-
|
15
|
+
i as PLATFORM_EVENTS_STUDENT,
|
16
|
+
I as PLATFORM_WHITELIST_EVENTS_STUDENT
|
16
17
|
};
|
17
18
|
//# sourceMappingURL=platform-events-student.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"platform-events-student.js","sources":["../../../src/features/analytics-events/platform-events-student.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\n/**\n ** Global/Platform specific events that needs to be tracked goes here\n ** Naming convention needs to be snake_case\n */\nexport enum PLATFORM_EVENTS_STUDENT {\n PAGE_VIEWED = 'page_viewed',\n CUSTOM_TEST_SUBMITTED = 'custom_test_submitted',\n\n // circle on leap mixpanel events\n ACTIVITY_STARTED = 'activity_started',\n ACTIVITY_TUTORIAL_SEEN = 'activity_tutorial_seen',\n STREAK_ICON_CLICKED = 'streak_icon_clicked',\n LEADERBOARD_BUTTON_CLICKED = 'leaderboard_button_clicked',\n ONBOARDING_STEP_VIEWED = 'onboarding_step_viewed',\n ONBOARDING_STEP_COMPLETED = 'onboarding_step_completed',\n}\n\n/**\n ** Events that need to be tracked at particular plugins\n ** Value will be array of strings.\n */\nexport const PLATFORM_WHITELIST_EVENTS_STUDENT = {\n [PLATFORM_EVENTS_STUDENT.PAGE_VIEWED]: [PLUGINS.MIXPANEL],\n\n // circle on leap mixpanel events\n [PLATFORM_EVENTS_STUDENT.ACTIVITY_STARTED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ACTIVITY_TUTORIAL_SEEN]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.STREAK_ICON_CLICKED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.LEADERBOARD_BUTTON_CLICKED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_VIEWED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_COMPLETED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLATFORM_EVENTS_STUDENT","PLATFORM_WHITELIST_EVENTS_STUDENT","PLUGINS"],"mappings":";AAMY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,wBAAwB,yBAGxBA,EAAA,mBAAmB,oBACnBA,EAAA,yBAAyB,0BACzBA,EAAA,sBAAsB,uBACtBA,EAAA,6BAA6B,8BAC7BA,EAAA,yBAAyB,0BACzBA,EAAA,4BAA4B,
|
1
|
+
{"version":3,"file":"platform-events-student.js","sources":["../../../src/features/analytics-events/platform-events-student.ts"],"sourcesContent":["import { PLUGINS } from '@cuemath/analytics-v2/dist/constants';\n\n/**\n ** Global/Platform specific events that needs to be tracked goes here\n ** Naming convention needs to be snake_case\n */\nexport enum PLATFORM_EVENTS_STUDENT {\n PAGE_VIEWED = 'page_viewed',\n CUSTOM_TEST_SUBMITTED = 'custom_test_submitted',\n\n // circle on leap mixpanel events\n ACTIVITY_STARTED = 'activity_started',\n ACTIVITY_TUTORIAL_SEEN = 'activity_tutorial_seen',\n STREAK_ICON_CLICKED = 'streak_icon_clicked',\n LEADERBOARD_BUTTON_CLICKED = 'leaderboard_button_clicked',\n ONBOARDING_STEP_VIEWED = 'onboarding_step_viewed',\n ONBOARDING_STEP_COMPLETED = 'onboarding_step_completed',\n COACHMARK_DISMISSED = 'coachmark_dismissed',\n}\n\n/**\n ** Events that need to be tracked at particular plugins\n ** Value will be array of strings.\n */\nexport const PLATFORM_WHITELIST_EVENTS_STUDENT = {\n [PLATFORM_EVENTS_STUDENT.PAGE_VIEWED]: [PLUGINS.MIXPANEL],\n\n // circle on leap mixpanel events\n [PLATFORM_EVENTS_STUDENT.ACTIVITY_STARTED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ACTIVITY_TUTORIAL_SEEN]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.STREAK_ICON_CLICKED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.LEADERBOARD_BUTTON_CLICKED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_VIEWED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.ONBOARDING_STEP_COMPLETED]: [PLUGINS.MIXPANEL],\n [PLATFORM_EVENTS_STUDENT.COACHMARK_DISMISSED]: [PLUGINS.MIXPANEL],\n};\n"],"names":["PLATFORM_EVENTS_STUDENT","PLATFORM_WHITELIST_EVENTS_STUDENT","PLUGINS"],"mappings":";AAMY,IAAAA,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,wBAAwB,yBAGxBA,EAAA,mBAAmB,oBACnBA,EAAA,yBAAyB,0BACzBA,EAAA,sBAAsB,uBACtBA,EAAA,6BAA6B,8BAC7BA,EAAA,yBAAyB,0BACzBA,EAAA,4BAA4B,6BAC5BA,EAAA,sBAAsB,uBAXZA,IAAAA,KAAA,CAAA,CAAA;AAkBL,MAAMC,IAAoC;AAAA,EAC9C,aAAsC,CAACC,EAAQ,QAAQ;AAAA;AAAA,EAGvD,kBAA2C,CAACA,EAAQ,QAAQ;AAAA,EAC5D,wBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,qBAA8C,CAACA,EAAQ,QAAQ;AAAA,EAC/D,4BAAqD,CAACA,EAAQ,QAAQ;AAAA,EACtE,wBAAiD,CAACA,EAAQ,QAAQ;AAAA,EAClE,2BAAoD,CAACA,EAAQ,QAAQ;AAAA,EACrE,qBAA8C,CAACA,EAAQ,QAAQ;AAClE;"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"circle-action-ids.js","sources":["../../../../src/features/circle-games/enum/circle-action-ids.ts"],"sourcesContent":["export enum CIRCLE_ACTION_IDS {\n STREAK_DECREASED = 'streak_decreased',\n}\n"],"names":["CIRCLE_ACTION_IDS"],"mappings":"AAAY,IAAAA,sBAAAA,OACVA,EAAA,mBAAmB,oBADTA,IAAAA,KAAA,CAAA,CAAA;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"web-view-types.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view-types.ts"],"sourcesContent":["import type { IAvatarLayer } from '../../../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../../../ui/types';\nimport type {\n GameId,\n PuzzleId,\n LessonId,\n MiniGameId,\n WebViewEvent,\n ProjectOutcome,\n ProjectType,\n} from './enums';\nimport type { WEBVIEW_ANALYTICS_EVENTS } from './web-view-analytics-events';\nimport type { IframeHTMLAttributes } from 'react';\n\nexport type TProject = GameId | PuzzleId | LessonId;\n\nexport interface IPlayer {\n id: string;\n username: string;\n grade?: string;\n avatar?: IAvatarLayer[] | null;\n playerType: TUserTypes;\n}\n\ninterface IBaseWebGameProps<T> {\n projectId: T;\n variant: string;\n projectType: ProjectType;\n joinByRoomId?: string;\n enableSync?: boolean; // applicable for all except multiplayer games\n enablePlayerTurnIndicators?: boolean;\n enableCloseButton?: boolean;\n}\n\nexport interface IMultiplayerWebGameProps extends IBaseWebGameProps<GameId> {}\n\nexport interface IPuzzleWebGameProps extends IBaseWebGameProps<PuzzleId> {\n question: string;\n askHintPermission?: boolean;\n}\n\nexport interface ILessonWebGameProps extends IBaseWebGameProps<LessonId> {\n miniGameIdentifier: MiniGameId;\n sessionId: string;\n targetQuestions: number;\n}\n\nexport interface IVibrationPattern {\n pattern: number[] | number;\n}\n\nexport enum IStatsToAwardErrorCode {\n DEFAULT = 'default',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport interface IPlayerStats {\n points: number;\n accuracy: number;\n timeSpent: number;\n streakDays: number;\n streakStatusToday: 'pending' | 'completed';\n errorCode: IStatsToAwardErrorCode;\n outcome: ProjectOutcome;\n value: string;\n}\n\nexport interface IInfoMessage {\n message: string;\n position: 'top' | 'bottom';\n}\n\nexport interface ITrackEvent {\n eventName: typeof WEBVIEW_ANALYTICS_EVENTS;\n properties: Record<string, unknown>;\n}\n\nexport interface IWebViewProps extends IframeHTMLAttributes<HTMLIFrameElement> {\n baseUrl: string;\n projectDetails: IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n playerDetails: IPlayer;\n onBack?: () => void;\n onGameLoad?: () => void;\n onGamePlayFinish?: (playerStats: IPlayerStats) => void;\n handleInfoMessage?: (infoMessage: IInfoMessage) => void;\n}\n\nexport interface IMessageProps {\n event: `${WebViewEvent}`;\n payload: IVibrationPattern | IPlayerStats | IInfoMessage | null;\n}\n"],"names":["IStatsToAwardErrorCode"],"mappings":"
|
1
|
+
{"version":3,"file":"web-view-types.js","sources":["../../../../../src/features/circle-games/games/web-view/web-view-types.ts"],"sourcesContent":["import type { IAvatarLayer } from '../../../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../../../ui/types';\nimport type {\n GameId,\n PuzzleId,\n LessonId,\n MiniGameId,\n WebViewEvent,\n ProjectOutcome,\n ProjectType,\n} from './enums';\nimport type { WEBVIEW_ANALYTICS_EVENTS } from './web-view-analytics-events';\nimport type { IframeHTMLAttributes } from 'react';\n\nexport type TProject = GameId | PuzzleId | LessonId;\n\nexport interface IPlayer {\n id: string;\n username: string;\n grade?: string;\n avatar?: IAvatarLayer[] | null;\n playerType: TUserTypes;\n countryCode: string;\n}\n\ninterface IBaseWebGameProps<T> {\n projectId: T;\n variant: string;\n projectType: ProjectType;\n joinByRoomId?: string;\n enableSync?: boolean; // applicable for all except multiplayer games\n enablePlayerTurnIndicators?: boolean;\n enableCloseButton?: boolean;\n}\n\nexport interface IMultiplayerWebGameProps extends IBaseWebGameProps<GameId> {}\n\nexport interface IPuzzleWebGameProps extends IBaseWebGameProps<PuzzleId> {\n question: string;\n askHintPermission?: boolean;\n}\n\nexport interface ILessonWebGameProps extends IBaseWebGameProps<LessonId> {\n miniGameIdentifier: MiniGameId;\n sessionId: string;\n targetQuestions: number;\n}\n\nexport interface IVibrationPattern {\n pattern: number[] | number;\n}\n\nexport enum IStatsToAwardErrorCode {\n DEFAULT = 'default',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport interface IPlayerStats {\n points: number;\n accuracy: number;\n timeSpent: number;\n streakDays: number;\n streakStatusToday: 'pending' | 'completed';\n errorCode: IStatsToAwardErrorCode;\n outcome: ProjectOutcome;\n value: string;\n}\n\nexport interface IInfoMessage {\n message: string;\n position: 'top' | 'bottom';\n}\n\nexport interface ITrackEvent {\n eventName: typeof WEBVIEW_ANALYTICS_EVENTS;\n properties: Record<string, unknown>;\n}\n\nexport interface IWebViewProps extends IframeHTMLAttributes<HTMLIFrameElement> {\n baseUrl: string;\n projectDetails: IMultiplayerWebGameProps | IPuzzleWebGameProps | ILessonWebGameProps;\n playerDetails: IPlayer;\n onBack?: () => void;\n onGameLoad?: () => void;\n onGamePlayFinish?: (playerStats: IPlayerStats) => void;\n handleInfoMessage?: (infoMessage: IInfoMessage) => void;\n}\n\nexport interface IMessageProps {\n event: `${WebViewEvent}`;\n payload: IVibrationPattern | IPlayerStats | IInfoMessage | null;\n}\n"],"names":["IStatsToAwardErrorCode"],"mappings":"AAoDY,IAAAA,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,UAAU,WACVA,EAAA,OAAO,QAHGA,IAAAA,KAAA,CAAA,CAAA;"}
|
@@ -1,29 +1,29 @@
|
|
1
|
-
import { jsxs as c, Fragment as
|
2
|
-
import { memo as
|
3
|
-
import { getTimeStrInFormatHMS as
|
4
|
-
import { useWebViewGames as
|
5
|
-
import { WebView as
|
1
|
+
import { jsxs as c, Fragment as Q, jsx as a } from "react/jsx-runtime";
|
2
|
+
import { memo as X, useRef as ee, useState as re, useMemo as p, useCallback as m, useEffect as w } from "react";
|
3
|
+
import { getTimeStrInFormatHMS as te } from "../../../../helpers/date-time.js";
|
4
|
+
import { useWebViewGames as ae } from "../../../circle-games/games/web-view/hooks/use-webview-games.js";
|
5
|
+
import { WebView as ie } from "../../../circle-games/games/web-view/web-view.js";
|
6
6
|
import Z from "../../../ui/layout/flex-view.js";
|
7
7
|
import h from "../../../ui/separator/separator.js";
|
8
8
|
import d from "../../../ui/text/text.js";
|
9
|
-
import { useTrialSessionContext as
|
9
|
+
import { useTrialSessionContext as oe } from "../../context/use-trial-session-context.js";
|
10
10
|
import { TrialPageId as T } from "../../trial-session-constants.js";
|
11
|
-
import { TrialCircleGameLaunchScreen as
|
12
|
-
import { GameContainer as
|
11
|
+
import { TrialCircleGameLaunchScreen as ne } from "./trial-circle-game-launch-screen/trial-circle-game-launch-screen.js";
|
12
|
+
import { GameContainer as le, GameWrapper as se, GameLaunchOverlay as ce } from "./trial-circle-game-styled.js";
|
13
13
|
import { ProjectType as e } from "../../../circle-games/games/web-view/enums/project-type-enum.js";
|
14
|
-
const
|
14
|
+
const me = {
|
15
15
|
[T.CIRCLE_GAME]: e.GAME,
|
16
16
|
[T.CIRCLE_PUZZLE]: e.PUZZLE,
|
17
17
|
[T.CIRCLE_SKILL]: e.LESSON
|
18
|
-
},
|
19
|
-
const { slideConfig: b, trialGameUrl: v, circleGames: j, formData: A, handleInfoMessage: $, updateSlideConfig: t } =
|
18
|
+
}, Pe = X(() => {
|
19
|
+
const { slideConfig: b, trialGameUrl: v, circleGames: j, formData: A, handleInfoMessage: $, updateSlideConfig: t } = oe(), {
|
20
20
|
showCircleGameScreen: S = !0,
|
21
21
|
isCircleGamePlayed: u = !1,
|
22
22
|
isCirclePuzzleSolved: s = !1,
|
23
23
|
isCircleSkillCompleted: f = !1,
|
24
24
|
accuracyStr: E = "",
|
25
25
|
totalTimeTaken: C = 0
|
26
|
-
} = A || {}, g =
|
26
|
+
} = A || {}, g = ee(null), { playGame: y } = ae({ webViewRef: g }), [M, G] = re(!0), { header: U, id: k } = b, r = me[k], { circleConfig: O, playerDetails: W } = j, { games: l, puzzles: n, lessons: i } = O ?? {}, L = p(() => ({
|
27
27
|
[e.GAME]: u,
|
28
28
|
[e.PUZZLE]: s,
|
29
29
|
[e.LESSON]: f
|
@@ -45,13 +45,14 @@ const ce = {
|
|
45
45
|
u,
|
46
46
|
s,
|
47
47
|
f
|
48
|
-
]), x = p(() => r === e.PUZZLE && s ? "You've solved it!" : "", [r, s]), { circle_username: D, userId: H, grade: N, user_avatar: R, playerType: I, matchMakingId: _ } = W ?? {},
|
48
|
+
]), x = p(() => r === e.PUZZLE && s ? "You've solved it!" : "", [r, s]), { circle_username: D, userId: H, grade: N, user_avatar: R, playerType: I, matchMakingId: _, countryCode: z } = W ?? {}, F = {
|
49
49
|
id: H,
|
50
50
|
username: D,
|
51
51
|
grade: N,
|
52
52
|
avatar: R,
|
53
|
-
playerType: I
|
54
|
-
|
53
|
+
playerType: I,
|
54
|
+
countryCode: z
|
55
|
+
}, B = p(() => {
|
55
56
|
const o = {
|
56
57
|
joinByRoomId: _,
|
57
58
|
enableCloseButton: !1,
|
@@ -79,13 +80,13 @@ const ce = {
|
|
79
80
|
targetQuestions: i.target_questions,
|
80
81
|
projectType: e.LESSON
|
81
82
|
};
|
82
|
-
}, [l, n, i, r, _]),
|
83
|
+
}, [l, n, i, r, _]), V = m(() => {
|
83
84
|
G(!1);
|
84
|
-
}, []),
|
85
|
+
}, []), q = m(() => {
|
85
86
|
G(!0), r === e.GAME ? t({ showCircleGameScreen: !0 }) : r === e.PUZZLE ? t({ showCircleGameScreen: !0 }) : r === e.LESSON && t({ showCircleGameScreen: !0 });
|
86
|
-
}, [t, r]),
|
87
|
+
}, [t, r]), Y = m(() => {
|
87
88
|
t({ showCircleGameScreen: !1, accuracyStr: "", totalTimeTaken: 0 });
|
88
|
-
}, [t]),
|
89
|
+
}, [t]), J = m(
|
89
90
|
(o) => {
|
90
91
|
G(!0), r === e.LESSON ? t({
|
91
92
|
accuracyStr: o.value,
|
@@ -95,11 +96,11 @@ const ce = {
|
|
95
96
|
}) : r === e.GAME ? t({ isCircleGamePlayed: !0, showCircleGameScreen: !0 }) : r === e.PUZZLE && t({ isCirclePuzzleSolved: !0, showCircleGameScreen: !0 });
|
96
97
|
},
|
97
98
|
[t, r]
|
98
|
-
),
|
99
|
+
), K = m(() => E && C ? /* @__PURE__ */ c(Q, { children: [
|
99
100
|
/* @__PURE__ */ c(Z, { $flexDirection: "row", children: [
|
100
101
|
/* @__PURE__ */ a(d, { $renderAs: "ab2", $color: "WHITE", children: "Finished in" }),
|
101
102
|
/* @__PURE__ */ a(h, { width: 5 }),
|
102
|
-
/* @__PURE__ */ a(d, { $renderAs: "ab2-bold", $color: "WHITE", children:
|
103
|
+
/* @__PURE__ */ a(d, { $renderAs: "ab2-bold", $color: "WHITE", children: te(C) })
|
103
104
|
] }),
|
104
105
|
/* @__PURE__ */ a(h, { height: 20 }),
|
105
106
|
/* @__PURE__ */ c(Z, { $flexDirection: "row", children: [
|
@@ -109,46 +110,46 @@ const ce = {
|
|
109
110
|
] })
|
110
111
|
] }) : null, [E, C]);
|
111
112
|
return w(() => {
|
112
|
-
S ||
|
113
|
-
}, [S,
|
113
|
+
S || y();
|
114
|
+
}, [S, y]), w(() => {
|
114
115
|
t({ showCircleGameScreen: !0 });
|
115
|
-
}, [t]), /* @__PURE__ */ c(
|
116
|
+
}, [t]), /* @__PURE__ */ c(le, { children: [
|
116
117
|
/* @__PURE__ */ a(h, { height: 16 }),
|
117
118
|
/* @__PURE__ */ a(d, { $renderAs: "ah3-bold", $color: "WHITE_T_87", $align: "center", $marginBottom: 16, children: U }),
|
118
|
-
/* @__PURE__ */ c(
|
119
|
-
S && /* @__PURE__ */ a(
|
120
|
-
|
119
|
+
/* @__PURE__ */ c(se, { children: [
|
120
|
+
S && /* @__PURE__ */ a(ce, { children: /* @__PURE__ */ a(
|
121
|
+
ne,
|
121
122
|
{
|
122
123
|
assetUrl: P,
|
123
124
|
assetUrlType: P.endsWith("mp4") ? "video" : "lottie",
|
124
125
|
descriptionHeader: x,
|
125
126
|
playerType: I,
|
126
127
|
isLoading: M,
|
127
|
-
isGamePlayed: (r &&
|
128
|
-
onPlay:
|
129
|
-
custEle: r === e.LESSON ?
|
130
|
-
celebrationText: r &&
|
128
|
+
isGamePlayed: (r && L[r]) ?? !1,
|
129
|
+
onPlay: Y,
|
130
|
+
custEle: r === e.LESSON ? K() : void 0,
|
131
|
+
celebrationText: r && L[r] ? "WELL DONE!" : ""
|
131
132
|
}
|
132
133
|
) }),
|
133
134
|
/* @__PURE__ */ a(
|
134
|
-
|
135
|
+
ie,
|
135
136
|
{
|
136
137
|
ref: g,
|
137
138
|
height: "100%",
|
138
139
|
width: "100%",
|
139
140
|
baseUrl: v,
|
140
|
-
playerDetails:
|
141
|
-
projectDetails:
|
142
|
-
onGameLoad:
|
143
|
-
onBack:
|
141
|
+
playerDetails: F,
|
142
|
+
projectDetails: B,
|
143
|
+
onGameLoad: V,
|
144
|
+
onBack: q,
|
144
145
|
handleInfoMessage: $,
|
145
|
-
onGamePlayFinish:
|
146
|
+
onGamePlayFinish: J
|
146
147
|
}
|
147
148
|
)
|
148
149
|
] })
|
149
150
|
] });
|
150
151
|
});
|
151
152
|
export {
|
152
|
-
|
153
|
+
Pe as default
|
153
154
|
};
|
154
155
|
//# sourceMappingURL=trial-circle-game.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"trial-circle-game.js","sources":["../../../../../src/features/trial-session/comps/trial-circle-game/trial-circle-game.tsx"],"sourcesContent":["import type { GameId, LessonId, PuzzleId } from '../../../circle-games/games/web-view/enums';\nimport type {\n ILessonWebGameProps,\n IMultiplayerWebGameProps,\n IPlayer,\n IPlayerStats,\n IPuzzleWebGameProps,\n} from '../../../circle-games/games/web-view/web-view-types';\n\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { getTimeStrInFormatHMS } from '../../../../helpers/date-time';\nimport { ProjectType } from '../../../circle-games/games/web-view/enums';\nimport { useWebViewGames } from '../../../circle-games/games/web-view/hooks/use-webview-games';\nimport { WebView } from '../../../circle-games/games/web-view/web-view';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { TrialPageId } from '../../trial-session-constants';\nimport { TrialCircleGameLaunchScreen } from './trial-circle-game-launch-screen/trial-circle-game-launch-screen';\nimport * as Styled from './trial-circle-game-styled';\n\nconst PROJECT_TYPE_MAP: Partial<Record<TrialPageId, ProjectType>> = {\n [TrialPageId.CIRCLE_GAME]: ProjectType.GAME,\n [TrialPageId.CIRCLE_PUZZLE]: ProjectType.PUZZLE,\n [TrialPageId.CIRCLE_SKILL]: ProjectType.LESSON,\n};\n\nconst TrialCircleGame = memo(() => {\n const { slideConfig, trialGameUrl, circleGames, formData, handleInfoMessage, updateSlideConfig } =\n useTrialSessionContext();\n const {\n showCircleGameScreen = true,\n isCircleGamePlayed = false,\n isCirclePuzzleSolved = false,\n isCircleSkillCompleted = false,\n accuracyStr = '',\n totalTimeTaken = 0,\n } = formData || {};\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const { playGame } = useWebViewGames({ webViewRef });\n const [isLoading, setIsLoading] = useState(true);\n\n const { header, id } = slideConfig;\n const projectType = PROJECT_TYPE_MAP[id];\n const { circleConfig, playerDetails } = circleGames;\n const { games, puzzles, lessons } = circleConfig ?? {};\n\n const isPlayed = useMemo(() => {\n const playedStats: Record<ProjectType, boolean> = {\n [ProjectType.GAME]: isCircleGamePlayed,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved,\n [ProjectType.LESSON]: isCircleSkillCompleted,\n };\n\n return playedStats;\n }, [isCircleGamePlayed, isCirclePuzzleSolved, isCircleSkillCompleted]);\n\n const assetUrl = useMemo(() => {\n const url: Record<ProjectType, string> = {\n [ProjectType.GAME]: isCircleGamePlayed ? games.game_card : games.tutorial,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved ? puzzles.game_card : puzzles.tutorial,\n [ProjectType.LESSON]: isCircleSkillCompleted ? lessons.game_card : lessons.tutorial,\n };\n\n return projectType ? url[projectType] : '';\n }, [\n projectType,\n games.game_card,\n games.tutorial,\n puzzles.game_card,\n puzzles.tutorial,\n lessons.game_card,\n lessons.tutorial,\n isCircleGamePlayed,\n isCirclePuzzleSolved,\n isCircleSkillCompleted,\n ]);\n\n const descriptionHeader = useMemo(() => {\n if (projectType === ProjectType.PUZZLE && isCirclePuzzleSolved) {\n return \"You've solved it!\";\n }\n\n return '';\n }, [projectType, isCirclePuzzleSolved]);\n\n const { circle_username, userId, grade, user_avatar, playerType, matchMakingId } =\n playerDetails ?? {};\n\n const playerData: IPlayer = {\n id: userId,\n username: circle_username,\n grade: grade,\n avatar: user_avatar,\n playerType,\n };\n\n const projectDetails = useMemo(() => {\n const commonConfig = {\n joinByRoomId: matchMakingId,\n enableCloseButton: false,\n enablePlayerTurnIndicators: true,\n enableSync: true,\n };\n\n if (projectType === ProjectType.GAME) {\n return {\n ...commonConfig,\n projectId: games.project_id as GameId,\n variant: games.variant,\n projectType: ProjectType.GAME,\n } as IMultiplayerWebGameProps;\n }\n\n if (projectType === ProjectType.PUZZLE) {\n return {\n ...commonConfig,\n projectId: puzzles.project_id as PuzzleId,\n variant: puzzles.variant,\n question: puzzles.question,\n askHintPermission: false,\n projectType: ProjectType.PUZZLE,\n } as IPuzzleWebGameProps;\n }\n\n return {\n ...commonConfig,\n projectId: lessons.project_id as LessonId,\n variant: lessons.variant,\n miniGameIdentifier: lessons.mini_game_identifier,\n sessionId: lessons.session_id,\n targetQuestions: lessons.target_questions,\n projectType: ProjectType.LESSON,\n } as ILessonWebGameProps;\n\n // return commonConfig;\n }, [games, puzzles, lessons, projectType, matchMakingId]);\n\n const onGameLoad = useCallback(() => {\n setIsLoading(false);\n }, []);\n\n const handleBack = useCallback(() => {\n setIsLoading(true);\n if (projectType === ProjectType.GAME) {\n updateSlideConfig({ showCircleGameScreen: true });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({ showCircleGameScreen: true });\n } else if (projectType === ProjectType.LESSON) {\n updateSlideConfig({ showCircleGameScreen: true });\n }\n }, [updateSlideConfig, projectType]);\n\n const onPlay = useCallback(() => {\n updateSlideConfig({ showCircleGameScreen: false, accuracyStr: '', totalTimeTaken: 0 });\n }, [updateSlideConfig]);\n\n const handleGameFinish = useCallback(\n (playerStats: IPlayerStats) => {\n setIsLoading(true);\n if (projectType === ProjectType.LESSON) {\n updateSlideConfig({\n accuracyStr: playerStats.value,\n totalTimeTaken: playerStats.timeSpent,\n isCircleSkillCompleted: true,\n showCircleGameScreen: true,\n });\n } else if (projectType === ProjectType.GAME) {\n updateSlideConfig({ isCircleGamePlayed: true, showCircleGameScreen: true });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({ isCirclePuzzleSolved: true, showCircleGameScreen: true });\n }\n },\n [updateSlideConfig, projectType],\n );\n\n const getCustEle = useCallback(() => {\n if (accuracyStr && totalTimeTaken) {\n return (\n <>\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Finished in\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {getTimeStrInFormatHMS(totalTimeTaken)}\n </Text>\n </FlexView>\n <Separator height={20} />\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Accuracy:\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {accuracyStr}\n </Text>\n </FlexView>\n </>\n );\n }\n\n return null;\n }, [accuracyStr, totalTimeTaken]);\n\n useEffect(() => {\n if (!showCircleGameScreen) {\n playGame();\n }\n }, [showCircleGameScreen, playGame]);\n\n useEffect(() => {\n updateSlideConfig({ showCircleGameScreen: true });\n }, [updateSlideConfig]);\n\n return (\n <Styled.GameContainer>\n <Separator height={16} />\n <Text $renderAs=\"ah3-bold\" $color=\"WHITE_T_87\" $align=\"center\" $marginBottom={16}>\n {header}\n </Text>\n <Styled.GameWrapper>\n {showCircleGameScreen && (\n <Styled.GameLaunchOverlay>\n <TrialCircleGameLaunchScreen\n assetUrl={assetUrl}\n assetUrlType={assetUrl.endsWith('mp4') ? 'video' : 'lottie'}\n descriptionHeader={descriptionHeader}\n playerType={playerType}\n isLoading={isLoading}\n isGamePlayed={(projectType && isPlayed[projectType]) ?? false}\n onPlay={onPlay}\n custEle={projectType === ProjectType.LESSON ? getCustEle() : undefined}\n celebrationText={projectType && isPlayed[projectType] ? 'WELL DONE!' : ''}\n />\n </Styled.GameLaunchOverlay>\n )}\n <WebView\n ref={webViewRef}\n height=\"100%\"\n width=\"100%\"\n baseUrl={trialGameUrl}\n playerDetails={playerData}\n projectDetails={projectDetails}\n onGameLoad={onGameLoad}\n onBack={handleBack}\n handleInfoMessage={handleInfoMessage}\n onGamePlayFinish={handleGameFinish}\n />\n </Styled.GameWrapper>\n </Styled.GameContainer>\n );\n});\n\nexport default TrialCircleGame;\n"],"names":["PROJECT_TYPE_MAP","TrialPageId","ProjectType","TrialCircleGame","memo","slideConfig","trialGameUrl","circleGames","formData","handleInfoMessage","updateSlideConfig","useTrialSessionContext","showCircleGameScreen","isCircleGamePlayed","isCirclePuzzleSolved","isCircleSkillCompleted","accuracyStr","totalTimeTaken","webViewRef","useRef","playGame","useWebViewGames","isLoading","setIsLoading","useState","header","id","projectType","circleConfig","playerDetails","games","puzzles","lessons","isPlayed","useMemo","assetUrl","url","descriptionHeader","circle_username","userId","grade","user_avatar","playerType","matchMakingId","playerData","projectDetails","commonConfig","onGameLoad","useCallback","handleBack","onPlay","handleGameFinish","playerStats","getCustEle","jsxs","Fragment","FlexView","jsx","Text","Separator","getTimeStrInFormatHMS","useEffect","Styled.GameContainer","Styled.GameWrapper","Styled.GameLaunchOverlay","TrialCircleGameLaunchScreen","WebView"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"trial-circle-game.js","sources":["../../../../../src/features/trial-session/comps/trial-circle-game/trial-circle-game.tsx"],"sourcesContent":["import type { GameId, LessonId, PuzzleId } from '../../../circle-games/games/web-view/enums';\nimport type {\n ILessonWebGameProps,\n IMultiplayerWebGameProps,\n IPlayer,\n IPlayerStats,\n IPuzzleWebGameProps,\n} from '../../../circle-games/games/web-view/web-view-types';\n\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { getTimeStrInFormatHMS } from '../../../../helpers/date-time';\nimport { ProjectType } from '../../../circle-games/games/web-view/enums';\nimport { useWebViewGames } from '../../../circle-games/games/web-view/hooks/use-webview-games';\nimport { WebView } from '../../../circle-games/games/web-view/web-view';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Separator from '../../../ui/separator/separator';\nimport Text from '../../../ui/text/text';\nimport { useTrialSessionContext } from '../../context/use-trial-session-context';\nimport { TrialPageId } from '../../trial-session-constants';\nimport { TrialCircleGameLaunchScreen } from './trial-circle-game-launch-screen/trial-circle-game-launch-screen';\nimport * as Styled from './trial-circle-game-styled';\n\nconst PROJECT_TYPE_MAP: Partial<Record<TrialPageId, ProjectType>> = {\n [TrialPageId.CIRCLE_GAME]: ProjectType.GAME,\n [TrialPageId.CIRCLE_PUZZLE]: ProjectType.PUZZLE,\n [TrialPageId.CIRCLE_SKILL]: ProjectType.LESSON,\n};\n\nconst TrialCircleGame = memo(() => {\n const { slideConfig, trialGameUrl, circleGames, formData, handleInfoMessage, updateSlideConfig } =\n useTrialSessionContext();\n const {\n showCircleGameScreen = true,\n isCircleGamePlayed = false,\n isCirclePuzzleSolved = false,\n isCircleSkillCompleted = false,\n accuracyStr = '',\n totalTimeTaken = 0,\n } = formData || {};\n const webViewRef = useRef<HTMLIFrameElement>(null);\n const { playGame } = useWebViewGames({ webViewRef });\n const [isLoading, setIsLoading] = useState(true);\n\n const { header, id } = slideConfig;\n const projectType = PROJECT_TYPE_MAP[id];\n const { circleConfig, playerDetails } = circleGames;\n const { games, puzzles, lessons } = circleConfig ?? {};\n\n const isPlayed = useMemo(() => {\n const playedStats: Record<ProjectType, boolean> = {\n [ProjectType.GAME]: isCircleGamePlayed,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved,\n [ProjectType.LESSON]: isCircleSkillCompleted,\n };\n\n return playedStats;\n }, [isCircleGamePlayed, isCirclePuzzleSolved, isCircleSkillCompleted]);\n\n const assetUrl = useMemo(() => {\n const url: Record<ProjectType, string> = {\n [ProjectType.GAME]: isCircleGamePlayed ? games.game_card : games.tutorial,\n [ProjectType.PUZZLE]: isCirclePuzzleSolved ? puzzles.game_card : puzzles.tutorial,\n [ProjectType.LESSON]: isCircleSkillCompleted ? lessons.game_card : lessons.tutorial,\n };\n\n return projectType ? url[projectType] : '';\n }, [\n projectType,\n games.game_card,\n games.tutorial,\n puzzles.game_card,\n puzzles.tutorial,\n lessons.game_card,\n lessons.tutorial,\n isCircleGamePlayed,\n isCirclePuzzleSolved,\n isCircleSkillCompleted,\n ]);\n\n const descriptionHeader = useMemo(() => {\n if (projectType === ProjectType.PUZZLE && isCirclePuzzleSolved) {\n return \"You've solved it!\";\n }\n\n return '';\n }, [projectType, isCirclePuzzleSolved]);\n\n const { circle_username, userId, grade, user_avatar, playerType, matchMakingId, countryCode } =\n playerDetails ?? {};\n\n const playerData: IPlayer = {\n id: userId,\n username: circle_username,\n grade: grade,\n avatar: user_avatar,\n playerType,\n countryCode: countryCode,\n };\n\n const projectDetails = useMemo(() => {\n const commonConfig = {\n joinByRoomId: matchMakingId,\n enableCloseButton: false,\n enablePlayerTurnIndicators: true,\n enableSync: true,\n };\n\n if (projectType === ProjectType.GAME) {\n return {\n ...commonConfig,\n projectId: games.project_id as GameId,\n variant: games.variant,\n projectType: ProjectType.GAME,\n } as IMultiplayerWebGameProps;\n }\n\n if (projectType === ProjectType.PUZZLE) {\n return {\n ...commonConfig,\n projectId: puzzles.project_id as PuzzleId,\n variant: puzzles.variant,\n question: puzzles.question,\n askHintPermission: false,\n projectType: ProjectType.PUZZLE,\n } as IPuzzleWebGameProps;\n }\n\n return {\n ...commonConfig,\n projectId: lessons.project_id as LessonId,\n variant: lessons.variant,\n miniGameIdentifier: lessons.mini_game_identifier,\n sessionId: lessons.session_id,\n targetQuestions: lessons.target_questions,\n projectType: ProjectType.LESSON,\n } as ILessonWebGameProps;\n\n // return commonConfig;\n }, [games, puzzles, lessons, projectType, matchMakingId]);\n\n const onGameLoad = useCallback(() => {\n setIsLoading(false);\n }, []);\n\n const handleBack = useCallback(() => {\n setIsLoading(true);\n if (projectType === ProjectType.GAME) {\n updateSlideConfig({ showCircleGameScreen: true });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({ showCircleGameScreen: true });\n } else if (projectType === ProjectType.LESSON) {\n updateSlideConfig({ showCircleGameScreen: true });\n }\n }, [updateSlideConfig, projectType]);\n\n const onPlay = useCallback(() => {\n updateSlideConfig({ showCircleGameScreen: false, accuracyStr: '', totalTimeTaken: 0 });\n }, [updateSlideConfig]);\n\n const handleGameFinish = useCallback(\n (playerStats: IPlayerStats) => {\n setIsLoading(true);\n if (projectType === ProjectType.LESSON) {\n updateSlideConfig({\n accuracyStr: playerStats.value,\n totalTimeTaken: playerStats.timeSpent,\n isCircleSkillCompleted: true,\n showCircleGameScreen: true,\n });\n } else if (projectType === ProjectType.GAME) {\n updateSlideConfig({ isCircleGamePlayed: true, showCircleGameScreen: true });\n } else if (projectType === ProjectType.PUZZLE) {\n updateSlideConfig({ isCirclePuzzleSolved: true, showCircleGameScreen: true });\n }\n },\n [updateSlideConfig, projectType],\n );\n\n const getCustEle = useCallback(() => {\n if (accuracyStr && totalTimeTaken) {\n return (\n <>\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Finished in\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {getTimeStrInFormatHMS(totalTimeTaken)}\n </Text>\n </FlexView>\n <Separator height={20} />\n <FlexView $flexDirection=\"row\">\n <Text $renderAs=\"ab2\" $color=\"WHITE\">\n Accuracy:\n </Text>\n <Separator width={5} />\n <Text $renderAs=\"ab2-bold\" $color=\"WHITE\">\n {accuracyStr}\n </Text>\n </FlexView>\n </>\n );\n }\n\n return null;\n }, [accuracyStr, totalTimeTaken]);\n\n useEffect(() => {\n if (!showCircleGameScreen) {\n playGame();\n }\n }, [showCircleGameScreen, playGame]);\n\n useEffect(() => {\n updateSlideConfig({ showCircleGameScreen: true });\n }, [updateSlideConfig]);\n\n return (\n <Styled.GameContainer>\n <Separator height={16} />\n <Text $renderAs=\"ah3-bold\" $color=\"WHITE_T_87\" $align=\"center\" $marginBottom={16}>\n {header}\n </Text>\n <Styled.GameWrapper>\n {showCircleGameScreen && (\n <Styled.GameLaunchOverlay>\n <TrialCircleGameLaunchScreen\n assetUrl={assetUrl}\n assetUrlType={assetUrl.endsWith('mp4') ? 'video' : 'lottie'}\n descriptionHeader={descriptionHeader}\n playerType={playerType}\n isLoading={isLoading}\n isGamePlayed={(projectType && isPlayed[projectType]) ?? false}\n onPlay={onPlay}\n custEle={projectType === ProjectType.LESSON ? getCustEle() : undefined}\n celebrationText={projectType && isPlayed[projectType] ? 'WELL DONE!' : ''}\n />\n </Styled.GameLaunchOverlay>\n )}\n <WebView\n ref={webViewRef}\n height=\"100%\"\n width=\"100%\"\n baseUrl={trialGameUrl}\n playerDetails={playerData}\n projectDetails={projectDetails}\n onGameLoad={onGameLoad}\n onBack={handleBack}\n handleInfoMessage={handleInfoMessage}\n onGamePlayFinish={handleGameFinish}\n />\n </Styled.GameWrapper>\n </Styled.GameContainer>\n );\n});\n\nexport default TrialCircleGame;\n"],"names":["PROJECT_TYPE_MAP","TrialPageId","ProjectType","TrialCircleGame","memo","slideConfig","trialGameUrl","circleGames","formData","handleInfoMessage","updateSlideConfig","useTrialSessionContext","showCircleGameScreen","isCircleGamePlayed","isCirclePuzzleSolved","isCircleSkillCompleted","accuracyStr","totalTimeTaken","webViewRef","useRef","playGame","useWebViewGames","isLoading","setIsLoading","useState","header","id","projectType","circleConfig","playerDetails","games","puzzles","lessons","isPlayed","useMemo","assetUrl","url","descriptionHeader","circle_username","userId","grade","user_avatar","playerType","matchMakingId","countryCode","playerData","projectDetails","commonConfig","onGameLoad","useCallback","handleBack","onPlay","handleGameFinish","playerStats","getCustEle","jsxs","Fragment","FlexView","jsx","Text","Separator","getTimeStrInFormatHMS","useEffect","Styled.GameContainer","Styled.GameWrapper","Styled.GameLaunchOverlay","TrialCircleGameLaunchScreen","WebView"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"trial-session-types.js","sources":["../../../src/features/trial-session/trial-session-types.ts"],"sourcesContent":["import type { TNodeTypes } from '../../types/models/worksheet';\nimport type { IInfoMessage } from '../circle-games/games/web-view/web-view-types';\nimport type { IMilestoneConfig, TCourseStream } from '../milestone/create/milestone-create-types';\nimport type { IAvatarLayer } from '../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport type {\n ITrialCircleConfig,\n ITrialCircleGameParams,\n} from './comps/trial-circle-game/trial-circle-game-types';\nimport type { TrialPageId } from './trial-session-constants';\nimport type { Dispatch, SetStateAction } from 'react';\n\nexport type TSlideId = TrialPageId;\n\nexport enum EClassTimeAlertLevel {\n FIVE_MIN = '5min',\n FIFTEEN_MIN = '15min',\n}\ninterface IButtonConfig {\n buttonLabel: string;\n pageId: string;\n}\n\nexport interface ISolution {\n media?: string;\n media_type?: 'image' | 'video';\n text?: string;\n}\n\nexport type TDegreeInformation = { degree_name?: string; field_of_study?: string };\n\nexport interface ITeacherProfileDetails {\n lower_grade: string;\n higher_grade: string;\n header_image: string;\n years_of_experience: number;\n number_of_students_taught: number;\n countries: string[];\n degree: TDegreeInformation;\n}\n\nexport interface ISlide {\n id: TrialPageId;\n renderAs: 'split' | 'full';\n renderAVIn: 'left' | 'right';\n header: string;\n subHeader?: string;\n prevPage?: IButtonConfig;\n nextPage?: IButtonConfig;\n cues?: string[];\n dos?: string[];\n donts?: string[];\n navigationLabel?: string;\n slideTag?: string;\n teacher_profile?: ITeacherProfileDetails;\n solutions?: ISolution[];\n enableSessionPerk?: boolean;\n}\n\nexport interface TGoals {\n goal_code?: string;\n milestone_date_ts?: number;\n goal_category?: string;\n milestone_name?: string;\n publish?: boolean;\n}\n\nexport interface ITrialSessionFormFields {\n id: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n goals?: TGoals[];\n studentProfile?: {\n profileSummary?: string;\n dummyProfileImageIndex?: number;\n summaryFetched?: boolean;\n summaryFetchFailed?: boolean;\n };\n userNodeId?: string;\n nodeId?: string;\n nodeType?: TNodeTypes;\n attemptId?: string;\n preferences?: TPreference[];\n personalizedLevel?: string[];\n personalizedFocus?: string[];\n personalizedBehaviors?: string[];\n isCircleGamePlayed?: boolean;\n isCirclePuzzleSolved?: boolean;\n isCircleSkillCompleted?: boolean;\n studentTimezone?: string;\n showCircleGameScreen?: boolean;\n accuracyStr?: string;\n totalTimeTaken?: number;\n chapterId?: string;\n}\n\nexport interface IButtonState {\n isDisabled: boolean;\n isLoading: boolean;\n}\n\nexport interface ITrialHomeData {\n pages: ISlide[];\n demo_info: {\n student_classroom_id: string;\n stream: TCourseStream;\n };\n parent: {\n name: string;\n };\n student: {\n grade: string;\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n teacher: {\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n circle_trial_game_config: ITrialCircleConfig;\n}\n\nexport interface IClassTimeAlertConfig {\n alertLevel: EClassTimeAlertLevel | null;\n isVisible: boolean;\n onComplete: () => void;\n}\n\nexport interface ITrialSessionProps {\n classStartedOn?: Date;\n height?: string | number;\n userType: TUserTypes;\n studentId: string;\n teacherId: string;\n teacherClassroomId: string;\n teacherPanel?: JSX.Element;\n studentPanel?: JSX.Element;\n formData?: ITrialSessionFormFields;\n onFormDataChange?: Dispatch<SetStateAction<ITrialSessionFormFields | undefined>>;\n worksheet?: JSX.Element;\n worksheetNavigationPanel?: JSX.Element;\n questionsRatingPanel?: JSX.Element;\n studentAbsentInClass?: boolean;\n openEndClassModal?: () => void;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n classTimeAlertConfig?: IClassTimeAlertConfig;\n classDuration?: number;\n}\n\nexport interface ITrialSessionContext\n extends Pick<\n ITrialSessionProps,\n | 'classStartedOn'\n | 'formData'\n | 'teacherPanel'\n | 'studentId'\n | 'teacherId'\n | 'studentPanel'\n | 'worksheet'\n | 'worksheetNavigationPanel'\n | 'questionsRatingPanel'\n | 'openEndClassModal'\n | 'studentAbsentInClass'\n | 'classDuration'\n | 'classTimeAlertConfig'\n > {\n buttonState: { left: IButtonState; right: IButtonState };\n isTeacher: boolean;\n milestoneConfig: IMilestoneConfig;\n slideConfig: ISlide;\n updateButtonState: (\n btnNavDir: 'left' | 'right' | 'both',\n currentState: IButtonState | { left: IButtonState; right: IButtonState },\n ) => void;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n trialHomeData: ITrialHomeData;\n onTrialInformationUpdate?: () => void;\n circleGames: ITrialCircleGameParams;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n\nexport interface ITrialSessionViewProps extends ITrialSessionProps {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n studentTimezone?: string;\n onStudentTimezoneUpdate?: () => void;\n onTrialInformationUpdate?: () => void;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n"],"names":["EClassTimeAlertLevel"],"mappings":"AAeY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA;"}
|
1
|
+
{"version":3,"file":"trial-session-types.js","sources":["../../../src/features/trial-session/trial-session-types.ts"],"sourcesContent":["import type { TNodeTypes } from '../../types/models/worksheet';\nimport type { IInfoMessage } from '../circle-games/games/web-view/web-view-types';\nimport type { IMilestoneConfig, TCourseStream } from '../milestone/create/milestone-create-types';\nimport type { IAvatarLayer } from '../ui/avatar/avatar-types';\nimport type { TUserTypes } from '../ui/types';\nimport type { TPreference } from './comps/class-preference/class-preference-types';\nimport type {\n ITrialCircleConfig,\n ITrialCircleGameParams,\n} from './comps/trial-circle-game/trial-circle-game-types';\nimport type { TrialPageId } from './trial-session-constants';\nimport type { Dispatch, SetStateAction } from 'react';\n\nexport type TSlideId = TrialPageId;\n\nexport enum EClassTimeAlertLevel {\n FIVE_MIN = '5min',\n FIFTEEN_MIN = '15min',\n}\ninterface IButtonConfig {\n buttonLabel: string;\n pageId: string;\n}\n\nexport interface ISolution {\n media?: string;\n media_type?: 'image' | 'video';\n text?: string;\n}\n\nexport type TDegreeInformation = { degree_name?: string; field_of_study?: string };\n\nexport interface ITeacherProfileDetails {\n lower_grade: string;\n higher_grade: string;\n header_image: string;\n years_of_experience: number;\n number_of_students_taught: number;\n countries: string[];\n degree: TDegreeInformation;\n}\n\nexport interface ISlide {\n id: TrialPageId;\n renderAs: 'split' | 'full';\n renderAVIn: 'left' | 'right';\n header: string;\n subHeader?: string;\n prevPage?: IButtonConfig;\n nextPage?: IButtonConfig;\n cues?: string[];\n dos?: string[];\n donts?: string[];\n navigationLabel?: string;\n slideTag?: string;\n teacher_profile?: ITeacherProfileDetails;\n solutions?: ISolution[];\n enableSessionPerk?: boolean;\n}\n\nexport interface TGoals {\n goal_code?: string;\n milestone_date_ts?: number;\n goal_category?: string;\n milestone_name?: string;\n publish?: boolean;\n}\n\nexport interface ITrialSessionFormFields {\n id: string;\n name?: string;\n grade?: string;\n curriculum?: string;\n goals?: TGoals[];\n studentProfile?: {\n profileSummary?: string;\n dummyProfileImageIndex?: number;\n summaryFetched?: boolean;\n summaryFetchFailed?: boolean;\n };\n userNodeId?: string;\n nodeId?: string;\n nodeType?: TNodeTypes;\n attemptId?: string;\n preferences?: TPreference[];\n personalizedLevel?: string[];\n personalizedFocus?: string[];\n personalizedBehaviors?: string[];\n isCircleGamePlayed?: boolean;\n isCirclePuzzleSolved?: boolean;\n isCircleSkillCompleted?: boolean;\n studentTimezone?: string;\n showCircleGameScreen?: boolean;\n accuracyStr?: string;\n totalTimeTaken?: number;\n chapterId?: string;\n}\n\nexport interface IButtonState {\n isDisabled: boolean;\n isLoading: boolean;\n}\n\nexport interface ITrialHomeData {\n pages: ISlide[];\n demo_info: {\n student_classroom_id: string;\n stream: TCourseStream;\n };\n parent: {\n name: string;\n };\n student: {\n grade: string;\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n teacher: {\n name: string;\n circle_username: string;\n user_avatar: IAvatarLayer[];\n };\n circle_trial_game_config: ITrialCircleConfig;\n}\n\nexport interface IClassTimeAlertConfig {\n alertLevel: EClassTimeAlertLevel | null;\n isVisible: boolean;\n onComplete: () => void;\n}\n\nexport interface ITrialSessionProps {\n countryCode: string;\n classStartedOn?: Date;\n height?: string | number;\n userType: TUserTypes;\n studentId: string;\n teacherId: string;\n teacherClassroomId: string;\n teacherPanel?: JSX.Element;\n studentPanel?: JSX.Element;\n formData?: ITrialSessionFormFields;\n onFormDataChange?: Dispatch<SetStateAction<ITrialSessionFormFields | undefined>>;\n worksheet?: JSX.Element;\n worksheetNavigationPanel?: JSX.Element;\n questionsRatingPanel?: JSX.Element;\n studentAbsentInClass?: boolean;\n openEndClassModal?: () => void;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n classTimeAlertConfig?: IClassTimeAlertConfig;\n classDuration?: number;\n}\n\nexport interface ITrialSessionContext\n extends Pick<\n ITrialSessionProps,\n | 'classStartedOn'\n | 'formData'\n | 'teacherPanel'\n | 'studentId'\n | 'teacherId'\n | 'studentPanel'\n | 'worksheet'\n | 'worksheetNavigationPanel'\n | 'questionsRatingPanel'\n | 'openEndClassModal'\n | 'studentAbsentInClass'\n | 'classDuration'\n | 'classTimeAlertConfig'\n > {\n buttonState: { left: IButtonState; right: IButtonState };\n isTeacher: boolean;\n milestoneConfig: IMilestoneConfig;\n slideConfig: ISlide;\n updateButtonState: (\n btnNavDir: 'left' | 'right' | 'both',\n currentState: IButtonState | { left: IButtonState; right: IButtonState },\n ) => void;\n updateSlideConfig: (config: Partial<ITrialSessionFormFields>) => void;\n trialHomeData: ITrialHomeData;\n onTrialInformationUpdate?: () => void;\n circleGames: ITrialCircleGameParams;\n trialGameUrl: string;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n\nexport interface ITrialSessionViewProps extends ITrialSessionProps {\n trialHomeData: ITrialHomeData;\n milestoneConfig: IMilestoneConfig;\n studentTimezone?: string;\n onStudentTimezoneUpdate?: () => void;\n onTrialInformationUpdate?: () => void;\n handleInfoMessage: (message: IInfoMessage) => void;\n onRemoveOptionalSlides?: (grade?: string) => void;\n}\n"],"names":["EClassTimeAlertLevel"],"mappings":"AAeY,IAAAA,sBAAAA,OACVA,EAAA,WAAW,QACXA,EAAA,cAAc,SAFJA,IAAAA,KAAA,CAAA,CAAA;"}
|
@@ -1,40 +1,41 @@
|
|
1
|
-
import { jsx as h, jsxs as
|
2
|
-
import { memo as
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import { useButtonStateForLeftPanel as
|
6
|
-
import
|
7
|
-
import
|
8
|
-
const
|
1
|
+
import { jsx as h, jsxs as z } from "react/jsx-runtime";
|
2
|
+
import { memo as J, useState as K, useMemo as p, useCallback as Q, useEffect as C } from "react";
|
3
|
+
import W from "../ui/layout/flex-view.js";
|
4
|
+
import X from "./context/trial-session-context.js";
|
5
|
+
import { useButtonStateForLeftPanel as Y } from "./hooks/use-left-panel-button-state.js";
|
6
|
+
import Z from "./left-panel/index.js";
|
7
|
+
import ee from "./right-panel/index.js";
|
8
|
+
const le = J((H) => {
|
9
9
|
const {
|
10
|
+
countryCode: D,
|
10
11
|
userType: o,
|
11
|
-
teacherPanel:
|
12
|
-
studentPanel:
|
13
|
-
trialGameUrl:
|
12
|
+
teacherPanel: S,
|
13
|
+
studentPanel: _,
|
14
|
+
trialGameUrl: I,
|
14
15
|
formData: i,
|
15
|
-
height:
|
16
|
+
height: L = "100vh",
|
16
17
|
trialHomeData: e,
|
17
|
-
milestoneConfig:
|
18
|
+
milestoneConfig: T,
|
18
19
|
onFormDataChange: c,
|
19
|
-
worksheet:
|
20
|
+
worksheet: P,
|
20
21
|
studentId: r,
|
21
22
|
teacherId: s,
|
22
|
-
classStartedOn:
|
23
|
-
worksheetNavigationPanel:
|
24
|
-
questionsRatingPanel:
|
25
|
-
studentAbsentInClass:
|
26
|
-
openEndClassModal:
|
27
|
-
onTrialInformationUpdate:
|
23
|
+
classStartedOn: v,
|
24
|
+
worksheetNavigationPanel: x,
|
25
|
+
questionsRatingPanel: y,
|
26
|
+
studentAbsentInClass: $,
|
27
|
+
openEndClassModal: w,
|
28
|
+
onTrialInformationUpdate: E,
|
28
29
|
onStudentTimezoneUpdate: d,
|
29
|
-
handleInfoMessage:
|
30
|
-
onRemoveOptionalSlides:
|
31
|
-
classDuration:
|
30
|
+
handleInfoMessage: k,
|
31
|
+
onRemoveOptionalSlides: F,
|
32
|
+
classDuration: M,
|
32
33
|
studentTimezone: m,
|
33
|
-
classTimeAlertConfig:
|
34
|
-
} =
|
34
|
+
classTimeAlertConfig: R
|
35
|
+
} = H, t = o === "TEACHER", { pages: u = [], student: O } = e, { name: b, grade: j } = O || {}, [n, q] = K(i), f = t ? n : i, g = f == null ? void 0 : f.id, A = p(
|
35
36
|
() => u.find((a) => a.id === g) ?? u[0],
|
36
37
|
[g, u]
|
37
|
-
),
|
38
|
+
), G = p(() => {
|
38
39
|
const a = {
|
39
40
|
circleConfig: e.circle_trial_game_config,
|
40
41
|
playerDetails: {
|
@@ -42,67 +43,68 @@ const ie = z((B) => {
|
|
42
43
|
userId: t ? s : r,
|
43
44
|
circle_username: e[t ? "teacher" : "student"].circle_username,
|
44
45
|
user_avatar: e[t ? "teacher" : "student"].user_avatar,
|
45
|
-
playerType: o
|
46
|
+
playerType: o,
|
47
|
+
countryCode: D
|
46
48
|
}
|
47
49
|
};
|
48
50
|
return o === "STUDENT" && (a.playerDetails.grade = e.student.grade), a;
|
49
|
-
}, [t, r, s, e, o]), l =
|
50
|
-
|
51
|
-
}, []), { buttonState:
|
51
|
+
}, [D, t, r, s, e, o]), l = Q((a) => {
|
52
|
+
q((B) => B ? { ...B, ...a } : a);
|
53
|
+
}, []), { buttonState: N, updateButtonState: V } = Y(), U = p(
|
52
54
|
() => ({
|
53
|
-
teacherPanel:
|
54
|
-
studentPanel:
|
55
|
+
teacherPanel: S,
|
56
|
+
studentPanel: _,
|
55
57
|
isTeacher: t,
|
56
|
-
slideConfig:
|
57
|
-
milestoneConfig:
|
58
|
+
slideConfig: A,
|
59
|
+
milestoneConfig: T,
|
58
60
|
formData: t ? n : i,
|
59
61
|
updateSlideConfig: l,
|
60
|
-
worksheet:
|
61
|
-
buttonState:
|
62
|
-
updateButtonState:
|
62
|
+
worksheet: P,
|
63
|
+
buttonState: N,
|
64
|
+
updateButtonState: V,
|
63
65
|
studentId: r,
|
64
66
|
teacherId: s,
|
65
|
-
classStartedOn:
|
67
|
+
classStartedOn: v,
|
66
68
|
trialHomeData: e,
|
67
|
-
worksheetNavigationPanel:
|
68
|
-
questionsRatingPanel:
|
69
|
-
onTrialInformationUpdate:
|
70
|
-
openEndClassModal:
|
71
|
-
studentAbsentInClass:
|
72
|
-
circleGames:
|
73
|
-
trialGameUrl:
|
74
|
-
handleInfoMessage:
|
75
|
-
onRemoveOptionalSlides:
|
76
|
-
classDuration:
|
77
|
-
classTimeAlertConfig:
|
69
|
+
worksheetNavigationPanel: x,
|
70
|
+
questionsRatingPanel: y,
|
71
|
+
onTrialInformationUpdate: E,
|
72
|
+
openEndClassModal: w,
|
73
|
+
studentAbsentInClass: $,
|
74
|
+
circleGames: G,
|
75
|
+
trialGameUrl: I,
|
76
|
+
handleInfoMessage: k,
|
77
|
+
onRemoveOptionalSlides: F,
|
78
|
+
classDuration: M,
|
79
|
+
classTimeAlertConfig: R
|
78
80
|
}),
|
79
81
|
[
|
80
|
-
D,
|
81
82
|
S,
|
83
|
+
_,
|
82
84
|
t,
|
83
|
-
|
84
|
-
|
85
|
+
A,
|
86
|
+
T,
|
85
87
|
n,
|
86
88
|
i,
|
87
89
|
l,
|
88
|
-
|
89
|
-
G,
|
90
|
+
P,
|
90
91
|
N,
|
92
|
+
V,
|
91
93
|
r,
|
92
94
|
s,
|
93
|
-
P,
|
94
|
-
e,
|
95
95
|
v,
|
96
|
+
e,
|
96
97
|
x,
|
97
|
-
w,
|
98
|
-
$,
|
99
98
|
y,
|
100
|
-
A,
|
101
|
-
_,
|
102
99
|
E,
|
100
|
+
w,
|
101
|
+
$,
|
102
|
+
G,
|
103
|
+
I,
|
103
104
|
k,
|
104
105
|
F,
|
105
|
-
M
|
106
|
+
M,
|
107
|
+
R
|
106
108
|
]
|
107
109
|
);
|
108
110
|
return C(() => {
|
@@ -110,13 +112,13 @@ const ie = z((B) => {
|
|
110
112
|
}, [c, n]), C(() => {
|
111
113
|
m || d == null || d();
|
112
114
|
}, [g]), C(() => {
|
113
|
-
l({ name:
|
114
|
-
}, [
|
115
|
-
/* @__PURE__ */ h(
|
116
|
-
/* @__PURE__ */ h(
|
115
|
+
l({ name: b, grade: j, studentTimezone: m });
|
116
|
+
}, [b, j, l, m]), /* @__PURE__ */ h(X.Provider, { value: U, children: /* @__PURE__ */ z(W, { $height: L, $flexDirection: "row", $justifyContent: "center", $alignItems: "center", children: [
|
117
|
+
/* @__PURE__ */ h(Z, {}),
|
118
|
+
/* @__PURE__ */ h(ee, {})
|
117
119
|
] }) });
|
118
120
|
});
|
119
121
|
export {
|
120
|
-
|
122
|
+
le as default
|
121
123
|
};
|
122
124
|
//# sourceMappingURL=trial-session-view.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"trial-session-view.js","sources":["../../../src/features/trial-session/trial-session-view.tsx"],"sourcesContent":["import type { ITrialCircleGameParams } from './comps/trial-circle-game/trial-circle-game-types';\nimport type {\n ITrialSessionContext,\n ITrialSessionViewProps,\n ITrialSessionFormFields,\n} from './trial-session-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport FlexView from '../ui/layout/flex-view';\nimport TrialSessionContext from './context/trial-session-context';\nimport { useButtonStateForLeftPanel } from './hooks/use-left-panel-button-state';\nimport LeftPanel from './left-panel';\nimport RightPanel from './right-panel';\n\nconst TrialSessionView: FC<ITrialSessionViewProps> = memo(props => {\n const {\n userType,\n teacherPanel,\n studentPanel,\n trialGameUrl,\n formData: formDataProps,\n height = '100vh',\n trialHomeData,\n milestoneConfig,\n onFormDataChange,\n worksheet,\n studentId,\n teacherId,\n classStartedOn,\n worksheetNavigationPanel,\n questionsRatingPanel,\n studentAbsentInClass,\n openEndClassModal,\n onTrialInformationUpdate,\n onStudentTimezoneUpdate,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n studentTimezone,\n classTimeAlertConfig,\n } = props;\n const isTeacher = userType === 'TEACHER';\n const { pages: slides = [], student } = trialHomeData;\n const { name: studentName, grade: studentGrade } = student || {};\n const [formData, setFormData] = useState<ITrialSessionFormFields | undefined>(formDataProps);\n const formDataToUse = isTeacher ? formData : formDataProps;\n const currentSlideId = formDataToUse?.id;\n const currentSlideConfig = useMemo(\n () => slides.find(config => config.id === currentSlideId) ?? slides[0]!,\n [currentSlideId, slides],\n );\n\n const circleGames = useMemo(() => {\n const data = {\n circleConfig: trialHomeData.circle_trial_game_config,\n playerDetails: {\n matchMakingId: `${teacherId}_${studentId}_trial_v3`,\n userId: isTeacher ? teacherId : studentId,\n circle_username: trialHomeData[isTeacher ? 'teacher' : 'student'].circle_username,\n user_avatar: trialHomeData[isTeacher ? 'teacher' : 'student'].user_avatar,\n playerType: userType,\n },\n } as ITrialCircleGameParams;\n\n if (userType === 'STUDENT') {\n data.playerDetails.grade = trialHomeData.student.grade;\n }\n\n return data;\n }, [isTeacher, studentId, teacherId, trialHomeData, userType]);\n\n const updateSlideConfig = useCallback((config: Partial<ITrialSessionFormFields>) => {\n setFormData(previousProps => {\n if (!previousProps) return config as ITrialSessionFormFields;\n\n return { ...previousProps, ...config };\n });\n }, []);\n const { buttonState, updateButtonState } = useButtonStateForLeftPanel();\n\n const contextValue = useMemo<ITrialSessionContext>(\n () => ({\n teacherPanel,\n studentPanel,\n isTeacher,\n slideConfig: currentSlideConfig,\n milestoneConfig,\n formData: isTeacher ? formData : formDataProps,\n updateSlideConfig,\n worksheet,\n buttonState,\n updateButtonState,\n studentId,\n teacherId,\n classStartedOn,\n trialHomeData,\n worksheetNavigationPanel,\n questionsRatingPanel,\n onTrialInformationUpdate,\n openEndClassModal,\n studentAbsentInClass,\n circleGames,\n trialGameUrl,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n classTimeAlertConfig,\n }),\n [\n teacherPanel,\n studentPanel,\n isTeacher,\n currentSlideConfig,\n milestoneConfig,\n formData,\n formDataProps,\n updateSlideConfig,\n worksheet,\n buttonState,\n updateButtonState,\n studentId,\n teacherId,\n classStartedOn,\n trialHomeData,\n worksheetNavigationPanel,\n questionsRatingPanel,\n onTrialInformationUpdate,\n openEndClassModal,\n studentAbsentInClass,\n circleGames,\n trialGameUrl,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n classTimeAlertConfig,\n ],\n );\n\n useEffect(() => {\n if (formData && onFormDataChange) {\n onFormDataChange(formData);\n }\n }, [onFormDataChange, formData]);\n\n useEffect(() => {\n if (!studentTimezone) onStudentTimezoneUpdate?.();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentSlideId]);\n\n useEffect(() => {\n updateSlideConfig({ name: studentName, grade: studentGrade, studentTimezone });\n }, [studentName, studentGrade, updateSlideConfig, studentTimezone]);\n\n return (\n <TrialSessionContext.Provider value={contextValue}>\n <FlexView $height={height} $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\">\n <LeftPanel />\n <RightPanel />\n </FlexView>\n </TrialSessionContext.Provider>\n );\n});\n\nexport default TrialSessionView;\n"],"names":["TrialSessionView","memo","props","userType","teacherPanel","studentPanel","trialGameUrl","formDataProps","height","trialHomeData","milestoneConfig","onFormDataChange","worksheet","studentId","teacherId","classStartedOn","worksheetNavigationPanel","questionsRatingPanel","studentAbsentInClass","openEndClassModal","onTrialInformationUpdate","onStudentTimezoneUpdate","handleInfoMessage","onRemoveOptionalSlides","classDuration","studentTimezone","classTimeAlertConfig","isTeacher","slides","student","studentName","studentGrade","formData","setFormData","useState","formDataToUse","currentSlideId","currentSlideConfig","useMemo","config","circleGames","data","updateSlideConfig","useCallback","previousProps","buttonState","updateButtonState","useButtonStateForLeftPanel","contextValue","useEffect","jsx","TrialSessionContext","jsxs","FlexView","LeftPanel","RightPanel"],"mappings":";;;;;;;AAgBM,MAAAA,KAA+CC,EAAK,CAASC,MAAA;AAC3D,QAAA;AAAA,IACJ,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAUC;AAAA,IACV,QAAAC,IAAS;AAAA,IACT,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,sBAAAC;AAAA,EACE,
|
1
|
+
{"version":3,"file":"trial-session-view.js","sources":["../../../src/features/trial-session/trial-session-view.tsx"],"sourcesContent":["import type { ITrialCircleGameParams } from './comps/trial-circle-game/trial-circle-game-types';\nimport type {\n ITrialSessionContext,\n ITrialSessionViewProps,\n ITrialSessionFormFields,\n} from './trial-session-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport FlexView from '../ui/layout/flex-view';\nimport TrialSessionContext from './context/trial-session-context';\nimport { useButtonStateForLeftPanel } from './hooks/use-left-panel-button-state';\nimport LeftPanel from './left-panel';\nimport RightPanel from './right-panel';\n\nconst TrialSessionView: FC<ITrialSessionViewProps> = memo(props => {\n const {\n countryCode,\n userType,\n teacherPanel,\n studentPanel,\n trialGameUrl,\n formData: formDataProps,\n height = '100vh',\n trialHomeData,\n milestoneConfig,\n onFormDataChange,\n worksheet,\n studentId,\n teacherId,\n classStartedOn,\n worksheetNavigationPanel,\n questionsRatingPanel,\n studentAbsentInClass,\n openEndClassModal,\n onTrialInformationUpdate,\n onStudentTimezoneUpdate,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n studentTimezone,\n classTimeAlertConfig,\n } = props;\n const isTeacher = userType === 'TEACHER';\n const { pages: slides = [], student } = trialHomeData;\n const { name: studentName, grade: studentGrade } = student || {};\n const [formData, setFormData] = useState<ITrialSessionFormFields | undefined>(formDataProps);\n const formDataToUse = isTeacher ? formData : formDataProps;\n const currentSlideId = formDataToUse?.id;\n const currentSlideConfig = useMemo(\n () => slides.find(config => config.id === currentSlideId) ?? slides[0]!,\n [currentSlideId, slides],\n );\n\n const circleGames = useMemo(() => {\n const data = {\n circleConfig: trialHomeData.circle_trial_game_config,\n playerDetails: {\n matchMakingId: `${teacherId}_${studentId}_trial_v3`,\n userId: isTeacher ? teacherId : studentId,\n circle_username: trialHomeData[isTeacher ? 'teacher' : 'student'].circle_username,\n user_avatar: trialHomeData[isTeacher ? 'teacher' : 'student'].user_avatar,\n playerType: userType,\n countryCode: countryCode,\n },\n } as ITrialCircleGameParams;\n\n if (userType === 'STUDENT') {\n data.playerDetails.grade = trialHomeData.student.grade;\n }\n\n return data;\n }, [countryCode, isTeacher, studentId, teacherId, trialHomeData, userType]);\n\n const updateSlideConfig = useCallback((config: Partial<ITrialSessionFormFields>) => {\n setFormData(previousProps => {\n if (!previousProps) return config as ITrialSessionFormFields;\n\n return { ...previousProps, ...config };\n });\n }, []);\n const { buttonState, updateButtonState } = useButtonStateForLeftPanel();\n\n const contextValue = useMemo<ITrialSessionContext>(\n () => ({\n teacherPanel,\n studentPanel,\n isTeacher,\n slideConfig: currentSlideConfig,\n milestoneConfig,\n formData: isTeacher ? formData : formDataProps,\n updateSlideConfig,\n worksheet,\n buttonState,\n updateButtonState,\n studentId,\n teacherId,\n classStartedOn,\n trialHomeData,\n worksheetNavigationPanel,\n questionsRatingPanel,\n onTrialInformationUpdate,\n openEndClassModal,\n studentAbsentInClass,\n circleGames,\n trialGameUrl,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n classTimeAlertConfig,\n }),\n [\n teacherPanel,\n studentPanel,\n isTeacher,\n currentSlideConfig,\n milestoneConfig,\n formData,\n formDataProps,\n updateSlideConfig,\n worksheet,\n buttonState,\n updateButtonState,\n studentId,\n teacherId,\n classStartedOn,\n trialHomeData,\n worksheetNavigationPanel,\n questionsRatingPanel,\n onTrialInformationUpdate,\n openEndClassModal,\n studentAbsentInClass,\n circleGames,\n trialGameUrl,\n handleInfoMessage,\n onRemoveOptionalSlides,\n classDuration,\n classTimeAlertConfig,\n ],\n );\n\n useEffect(() => {\n if (formData && onFormDataChange) {\n onFormDataChange(formData);\n }\n }, [onFormDataChange, formData]);\n\n useEffect(() => {\n if (!studentTimezone) onStudentTimezoneUpdate?.();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentSlideId]);\n\n useEffect(() => {\n updateSlideConfig({ name: studentName, grade: studentGrade, studentTimezone });\n }, [studentName, studentGrade, updateSlideConfig, studentTimezone]);\n\n return (\n <TrialSessionContext.Provider value={contextValue}>\n <FlexView $height={height} $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\">\n <LeftPanel />\n <RightPanel />\n </FlexView>\n </TrialSessionContext.Provider>\n );\n});\n\nexport default TrialSessionView;\n"],"names":["TrialSessionView","memo","props","countryCode","userType","teacherPanel","studentPanel","trialGameUrl","formDataProps","height","trialHomeData","milestoneConfig","onFormDataChange","worksheet","studentId","teacherId","classStartedOn","worksheetNavigationPanel","questionsRatingPanel","studentAbsentInClass","openEndClassModal","onTrialInformationUpdate","onStudentTimezoneUpdate","handleInfoMessage","onRemoveOptionalSlides","classDuration","studentTimezone","classTimeAlertConfig","isTeacher","slides","student","studentName","studentGrade","formData","setFormData","useState","formDataToUse","currentSlideId","currentSlideConfig","useMemo","config","circleGames","data","updateSlideConfig","useCallback","previousProps","buttonState","updateButtonState","useButtonStateForLeftPanel","contextValue","useEffect","jsx","TrialSessionContext","jsxs","FlexView","LeftPanel","RightPanel"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
@@ -165,6 +165,10 @@ export declare const ChevronLeftIcon: React_2.FC<IconProps_2>;
|
|
165
165
|
|
166
166
|
export declare const ChevronRightIcon: React_2.FC<IconProps>;
|
167
167
|
|
168
|
+
export declare enum CIRCLE_ACTION_IDS {
|
169
|
+
STREAK_DECREASED = "streak_decreased"
|
170
|
+
}
|
171
|
+
|
168
172
|
export declare enum CIRCLE_ONBOARDING_ANALYTICS_STEPS {
|
169
173
|
SKILL_ACTIVITY = "skill_activity",
|
170
174
|
GAMES_ACTIVITY = "games_activity",
|
@@ -2049,6 +2053,7 @@ export declare interface IPlayer {
|
|
2049
2053
|
grade?: string;
|
2050
2054
|
avatar?: IAvatarLayer[] | null;
|
2051
2055
|
playerType: TUserTypes;
|
2056
|
+
countryCode: string;
|
2052
2057
|
}
|
2053
2058
|
|
2054
2059
|
export declare interface IPlayerStats {
|
@@ -2785,6 +2790,7 @@ declare interface ITrialSessionMetadata {
|
|
2785
2790
|
}
|
2786
2791
|
|
2787
2792
|
declare interface ITrialSessionProps {
|
2793
|
+
countryCode: string;
|
2788
2794
|
classStartedOn?: Date;
|
2789
2795
|
height?: string | number;
|
2790
2796
|
userType: TUserTypes;
|
@@ -3485,7 +3491,8 @@ export declare enum PLATFORM_EVENTS_STUDENT {
|
|
3485
3491
|
STREAK_ICON_CLICKED = "streak_icon_clicked",
|
3486
3492
|
LEADERBOARD_BUTTON_CLICKED = "leaderboard_button_clicked",
|
3487
3493
|
ONBOARDING_STEP_VIEWED = "onboarding_step_viewed",
|
3488
|
-
ONBOARDING_STEP_COMPLETED = "onboarding_step_completed"
|
3494
|
+
ONBOARDING_STEP_COMPLETED = "onboarding_step_completed",
|
3495
|
+
COACHMARK_DISMISSED = "coachmark_dismissed"
|
3489
3496
|
}
|
3490
3497
|
|
3491
3498
|
export declare enum PLATFORM_EVENTS_TEACHER {
|
package/dist/index.js
CHANGED
@@ -154,77 +154,78 @@ import { ProjectType as Ya } from "./features/circle-games/games/web-view/enums/
|
|
154
154
|
import { PlayerType as Fa } from "./features/circle-games/games/web-view/enums/player-type-enum.js";
|
155
155
|
import { IStatsToAwardErrorCode as ja } from "./features/circle-games/games/web-view/web-view-types.js";
|
156
156
|
import { CIRCLE_ONBOARDING_ANALYTICS_STEPS as Za } from "./features/circle-games/enum/circle-onboarding-steps.js";
|
157
|
-
import {
|
158
|
-
import {
|
159
|
-
import {
|
160
|
-
import {
|
161
|
-
import {
|
162
|
-
import {
|
163
|
-
import {
|
164
|
-
import {
|
165
|
-
import { default as If } from "./features/cue-canvas/
|
166
|
-
import { default as Ef } from "./features/cue-canvas/
|
167
|
-
import { default as Cf } from "./features/cue-canvas/
|
168
|
-
import { default as Pf } from "./features/
|
169
|
-
import { default as hf } from "./features/communication/hooks/use-
|
170
|
-
import {
|
171
|
-
import {
|
172
|
-
import {
|
173
|
-
import {
|
174
|
-
import {
|
175
|
-
import {
|
176
|
-
import {
|
177
|
-
import {
|
178
|
-
import {
|
179
|
-
import {
|
180
|
-
import {
|
181
|
-
import {
|
182
|
-
import {
|
183
|
-
import { default as $f } from "./features/milestone/create/
|
184
|
-
import { default as os } from "./features/milestone/create/comps/confirmation-modals/
|
185
|
-
import { default as ts } from "./features/milestone/create/
|
186
|
-
import { default as fs } from "./features/milestone/
|
187
|
-
import { default as ls } from "./features/milestone/
|
188
|
-
import { default as ms } from "./features/milestone/outcome/
|
189
|
-
import { default as ds } from "./features/milestone/outcome/comps/achievement/
|
190
|
-
import { default as ns } from "./features/milestone/
|
191
|
-
import { default as Is } from "./features/milestone/edit/
|
192
|
-
import { default as Ts } from "./features/milestone/edit/
|
193
|
-
import { default as Ss } from "./features/milestone/
|
194
|
-
import { default as As } from "./features/milestone/milestone-
|
195
|
-
import { default as _s } from "./features/milestone/
|
196
|
-
import { default as Ls } from "./features/milestone/milestone-
|
197
|
-
import {
|
198
|
-
import {
|
199
|
-
import {
|
200
|
-
import {
|
201
|
-
import {
|
202
|
-
import { default as Vs } from "./features/pointer-sync/
|
203
|
-
import {
|
204
|
-
import {
|
205
|
-
import {
|
206
|
-
import { default as zs } from "./features/sheet-tools/
|
207
|
-
import { default as qs } from "./features/
|
208
|
-
import { default as $s } from "./features/sheets/
|
209
|
-
import {
|
210
|
-
import {
|
211
|
-
import {
|
212
|
-
import { default as Sl } from "./features/
|
213
|
-
import {
|
214
|
-
import {
|
215
|
-
import {
|
216
|
-
import { default as Ol } from "./features/worksheet/worksheet
|
217
|
-
import { default as Dl } from "./features/worksheet/worksheet/worksheet-
|
218
|
-
import { default as yl } from "./features/worksheet/worksheet/worksheet-permissions/
|
219
|
-
import { default as gl } from "./features/worksheet/
|
220
|
-
import { default as Ul } from "./features/worksheet/learnosity-preloader/
|
221
|
-
import { default as Wl } from "./features/worksheet/
|
222
|
-
import { default as wl } from "./features/
|
157
|
+
import { CIRCLE_ACTION_IDS as Xa } from "./features/circle-games/enum/circle-action-ids.js";
|
158
|
+
import { GameLauncher as ef } from "./features/circle-games/game-launcher/game-launcher.js";
|
159
|
+
import { useGetCircleHomeDetailsDal as rf } from "./features/circle-games/game-launcher/dal/use-get-circle-home-details-dal/use-get-circle-home-details-dal.js";
|
160
|
+
import { usePostUpdateCircleJourneyDal as af } from "./features/circle-games/game-launcher/dal/use-post-update-circle-journey-dal/use-post-update-circle-journey-dal.js";
|
161
|
+
import { Leaderboard as sf } from "./features/circle-games/leaderboard/leaderboard.js";
|
162
|
+
import { BackgroundImage as pf, CircularSteps as mf } from "./features/circle-games/sign-up/comp/circular-steps/circular-steps.js";
|
163
|
+
import { SplashScreen as df } from "./features/circle-games/sign-up/comp/splash-screen/splash-screen.js";
|
164
|
+
import { SignUp as nf } from "./features/circle-games/sign-up/sign-up.js";
|
165
|
+
import { default as If } from "./features/cue-canvas/cue-canvas-provider.js";
|
166
|
+
import { default as Ef } from "./features/cue-canvas/toolbar/toolbar.js";
|
167
|
+
import { default as Cf } from "./features/cue-canvas/cue-canvas.js";
|
168
|
+
import { default as Pf } from "./features/cue-canvas/hooks/use-canvas-sync-broker.js";
|
169
|
+
import { default as hf } from "./features/communication/hooks/use-inclass-message-broker/use-inclass-message-broker.js";
|
170
|
+
import { default as kf } from "./features/communication/hooks/use-trial-session-message-broker/use-trial-session-message-broker.js";
|
171
|
+
import { EVENTS as Nf } from "./features/communication/pub-sub/constants.js";
|
172
|
+
import { useInClassActionDispatcher as Of, useInClassActionListener as Rf } from "./features/communication/pub-sub/hooks.js";
|
173
|
+
import { default as Gf } from "./features/trial-session/trial-session.js";
|
174
|
+
import { EClassTimeAlertLevel as Bf } from "./features/trial-session/trial-session-types.js";
|
175
|
+
import { useClassTimeAlerts as bf } from "./features/trial-session/hooks/use-class-time-alerts.js";
|
176
|
+
import { default as vf } from "./features/extra-practice/extra-practice.js";
|
177
|
+
import { useAutoPlayPermission as Vf } from "./features/hooks/use-auto-play-permission/use-auto-play-permission.js";
|
178
|
+
import { JOURNEY_ID_STUDENT as Qf } from "./features/journey/journey-id/journey-id-student.js";
|
179
|
+
import { useJourney as Kf } from "./features/journey/use-journey/use-journey.js";
|
180
|
+
import { JourneyProvider as Jf } from "./features/journey/use-journey/journey-context-provider.js";
|
181
|
+
import { IndicatorType as zf } from "./features/journey/use-journey/constants.js";
|
182
|
+
import { Coachmark as qf } from "./features/journey/comps/coachmark/coachmark.js";
|
183
|
+
import { default as $f } from "./features/milestone/create/submit-modal/submit-modal.js";
|
184
|
+
import { default as os } from "./features/milestone/create/comps/confirmation-modals/goal-creation-confirmation.js";
|
185
|
+
import { default as ts } from "./features/milestone/create/comps/confirmation-modals/chapter-clearance-confirmation.js";
|
186
|
+
import { default as fs } from "./features/milestone/create/milestone-create-container.js";
|
187
|
+
import { default as ls } from "./features/milestone/edit/goal-drafts/goal-draft-edit-container.js";
|
188
|
+
import { default as ms } from "./features/milestone/outcome/milestone-outcome-container.js";
|
189
|
+
import { default as ds } from "./features/milestone/outcome/comps/achievement/reason-submit-modal.js";
|
190
|
+
import { default as ns } from "./features/milestone/outcome/comps/achievement/share-instructions-modal.js";
|
191
|
+
import { default as Is } from "./features/milestone/edit/comps/edit-milestone-modal/index.js";
|
192
|
+
import { default as Ts } from "./features/milestone/edit/goal-edit-container.js";
|
193
|
+
import { default as Ss } from "./features/milestone/edit/milestone-edit-container.js";
|
194
|
+
import { default as As } from "./features/milestone/milestone-list-container/milestone-list-container.js";
|
195
|
+
import { default as _s } from "./features/milestone/milestone-action-widget/milestone-action-widget.js";
|
196
|
+
import { default as Ls } from "./features/milestone/start/milestone-start.js";
|
197
|
+
import { default as Ms } from "./features/milestone/milestone-tests/tests-creation/tests-creation.js";
|
198
|
+
import { ACHIEVEMENT_ACTIONS as Hs, STAGES as Os } from "./features/milestone/outcome/milestone-outcome-constants.js";
|
199
|
+
import { invalidateMilestonesData as Ds, useGetAllMilestonesdata as Gs } from "./features/milestone/milestone-list-container/api/get-milestones.js";
|
200
|
+
import { invalidateTestHelpData as Bs, useGetTestHelpData as gs } from "./features/milestone/milestone-list-container/api/get-tests-list.js";
|
201
|
+
import { invalidateMilestoneResources as Us, useGetMilestoneResources as vs } from "./features/milestone/milestone-list-container/api/get-milestone-resources.js";
|
202
|
+
import { default as Vs } from "./features/pointer-sync/pointer.js";
|
203
|
+
import { default as Qs } from "./features/pointer-sync/hooks/use-pointer-sync.js";
|
204
|
+
import { PostGameStats as Ks } from "./features/post-game-stats/post-game-stats.js";
|
205
|
+
import { EPostGameStat as Js } from "./features/post-game-stats/enums/post-game-stats-enum.js";
|
206
|
+
import { default as zs } from "./features/sheet-tools/desmos-calculator/desmos-calculator.js";
|
207
|
+
import { default as qs } from "./features/sheet-tools/tool-header/tool-header.js";
|
208
|
+
import { default as $s } from "./features/sheets/sheets-list/sheets-list.js";
|
209
|
+
import { default as ol } from "./features/sheets/reference-sheet/reference-sheet.js";
|
210
|
+
import { isV3Worksheet as tl, isV3WorksheetAttempt as al } from "./features/sheets/utils/is-v3-worksheet.js";
|
211
|
+
import { COMPLETED_SHEET_STATE as sl, NODE_LABELS as ll, NODE_SUB_GROUP as pl, NODE_TYPE as ml, PYTHON_NODE_TYPES as ul, REWARDS_LIST as dl, SHEET_ACTIONS as xl, SHEET_ATTEMPT_LOCATION as nl, SHEET_ATTEMPT_LOCATION_MAP as cl, SHEET_ATTEMPT_STATE as Il, SHEET_DATA_TYPE as il, SHEET_STATE as Tl } from "./features/sheets/constants/sheet.js";
|
212
|
+
import { default as Sl } from "./features/student-details/student-details.js";
|
213
|
+
import { default as Al } from "./features/utils/load-script.js";
|
214
|
+
import { ACTION_BAR_HEIGHT as _l, QUESTIONS_GAP as hl, QUESTION_WIDTH as Ll, TOP_NAVIGATION_HEIGHT as kl } from "./features/worksheet/worksheet/constants.js";
|
215
|
+
import { isOkayTypeQuestion as Nl } from "./features/worksheet/worksheet/worksheet-helpers.js";
|
216
|
+
import { default as Ol } from "./features/worksheet/worksheet/worksheet-container.js";
|
217
|
+
import { default as Dl } from "./features/worksheet/worksheet-preview/worksheet-preview.js";
|
218
|
+
import { default as yl } from "./features/worksheet/worksheet/worksheet-permissions/sheet-locked.js";
|
219
|
+
import { default as gl } from "./features/worksheet/worksheet/worksheet-permissions/error.js";
|
220
|
+
import { default as Ul } from "./features/worksheet/learnosity-preloader/learnosity-preloader.js";
|
221
|
+
import { default as Wl } from "./features/worksheet/learnosity-preloader/use-is-learnosity-loaded.js";
|
222
|
+
import { default as wl } from "./features/worksheet/worksheet-preview/hooks/use-worksheet-layout.js";
|
223
|
+
import { default as Yl } from "./features/maintenance/maintenance.js";
|
223
224
|
export {
|
224
|
-
|
225
|
+
Hs as ACHIEVEMENT_ACTIONS,
|
225
226
|
Pr as AccordionSection,
|
226
|
-
|
227
|
-
|
227
|
+
ds as AchievementNotShareReasonModal,
|
228
|
+
ns as AchievementShareInstructionModal,
|
228
229
|
u as AlertIcon,
|
229
230
|
ct as AppLoader,
|
230
231
|
Wr as ArcButton,
|
@@ -233,7 +234,7 @@ export {
|
|
233
234
|
bt as Avatar,
|
234
235
|
Xo as Back2Icon,
|
235
236
|
x as BackIcon,
|
236
|
-
|
237
|
+
pf as BackgroundImage,
|
237
238
|
i as Bin2Icon,
|
238
239
|
c as BinIcon,
|
239
240
|
P as Book2Icon,
|
@@ -243,13 +244,14 @@ export {
|
|
243
244
|
N as Bulb2Icon,
|
244
245
|
k as BulbIcon,
|
245
246
|
Dr as Button,
|
247
|
+
Xa as CIRCLE_ACTION_IDS,
|
246
248
|
Za as CIRCLE_ONBOARDING_ANALYTICS_STEPS,
|
247
|
-
|
249
|
+
sl as COMPLETED_SHEET_STATE,
|
248
250
|
O as CalendarIcon,
|
249
251
|
kt as Callout,
|
250
252
|
at as CascadingSelectInput,
|
251
253
|
la as Chapter,
|
252
|
-
|
254
|
+
ts as ChapterClearanceConfirmationModal,
|
253
255
|
ma as ChaptersList,
|
254
256
|
ur as ChatIcon,
|
255
257
|
y as Check2Icon,
|
@@ -261,39 +263,39 @@ export {
|
|
261
263
|
er as ChevronRightIcon,
|
262
264
|
Na as CircleSoundKey,
|
263
265
|
it as CircularLoader,
|
264
|
-
|
266
|
+
mf as CircularSteps,
|
265
267
|
yr as Clickable,
|
266
268
|
g as ClipboardIcon,
|
267
269
|
W as Clock2Icon,
|
268
270
|
U as ClockIcon,
|
269
|
-
|
271
|
+
qf as Coachmark,
|
270
272
|
w as CodeIcon,
|
271
273
|
kr as ContextMenu,
|
272
274
|
Y as CopyIcon,
|
273
275
|
Nr as CountdownTimer,
|
274
276
|
F as CrossIcon,
|
275
|
-
|
276
|
-
|
277
|
-
|
277
|
+
Cf as CueCanvas,
|
278
|
+
Ef as CueCanvasController,
|
279
|
+
If as CueCanvasProvider,
|
278
280
|
j as CueRocket,
|
279
281
|
xr as CuemathLogo,
|
280
282
|
Z as DashArrowIcon,
|
281
|
-
|
283
|
+
zs as DesmosCalculator,
|
282
284
|
X as DownIcon,
|
283
285
|
ee as DraftIcon,
|
284
286
|
re as DragIcon,
|
285
|
-
|
287
|
+
Bf as EClassTimeAlertLevel,
|
286
288
|
ha as ELeaderboardType,
|
287
|
-
|
288
|
-
|
289
|
+
Js as EPostGameStat,
|
290
|
+
Nf as EVENTS,
|
289
291
|
se as Edit2Icon,
|
290
292
|
ae as EditIcon,
|
291
|
-
|
293
|
+
Is as EditMilestoneModal,
|
292
294
|
pe as EditStarIcon,
|
293
295
|
ue as EraserIcon,
|
294
296
|
wr as Error,
|
295
|
-
|
296
|
-
|
297
|
+
qs as ExpandableHeader,
|
298
|
+
vf as ExtraPractice,
|
297
299
|
ce as Eye2Icon,
|
298
300
|
xe as EyeIcon,
|
299
301
|
xt as FlexView,
|
@@ -301,10 +303,10 @@ export {
|
|
301
303
|
Ca as GAME_LAUNCHER_SIZE,
|
302
304
|
sr as GameIcon,
|
303
305
|
ya as GameId,
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
306
|
+
ef as GameLauncher,
|
307
|
+
os as GoalCreationConfirmationModal,
|
308
|
+
ls as GoalDraftEdit,
|
309
|
+
Ts as GoalEdit,
|
308
310
|
et as GooglePlacesSearchInput,
|
309
311
|
r as GradeSelector,
|
310
312
|
ie as HandIcon,
|
@@ -316,26 +318,26 @@ export {
|
|
316
318
|
ja as IStatsToAwardErrorCode,
|
317
319
|
gr as IconButton,
|
318
320
|
he as ImageIcon,
|
319
|
-
|
321
|
+
zf as IndicatorType,
|
320
322
|
Ne as Info2Icon,
|
321
323
|
ke as InfoIcon,
|
322
|
-
|
323
|
-
|
324
|
+
Qf as JOURNEY_ID_STUDENT,
|
325
|
+
Jf as JourneyProvider,
|
324
326
|
da as LPARChapter,
|
325
327
|
na as LPARMilestoneChapter,
|
326
|
-
|
327
|
-
|
328
|
+
sf as Leaderboard,
|
329
|
+
Ul as LearnosityPreloader,
|
328
330
|
Oe as LeftIcon,
|
329
331
|
Ba as LessonId,
|
330
332
|
ye as Lock2Icon,
|
331
333
|
De as LockIcon,
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
334
|
+
Yl as Maintenance,
|
335
|
+
_s as MilestoneActionWidget,
|
336
|
+
fs as MilestoneCreate,
|
337
|
+
Ss as MilestoneEdit,
|
338
|
+
As as MilestoneList,
|
339
|
+
ms as MilestoneOutcome,
|
340
|
+
Ls as MilestoneStart,
|
339
341
|
ga as MiniGameId,
|
340
342
|
Ue as Minus2Icon,
|
341
343
|
ge as MinusIcon,
|
@@ -343,16 +345,16 @@ export {
|
|
343
345
|
we as Mobile,
|
344
346
|
Ye as MoreVerticalIcon,
|
345
347
|
fa as MultiTabBlocker,
|
346
|
-
|
347
|
-
|
348
|
-
|
348
|
+
ll as NODE_LABELS,
|
349
|
+
pl as NODE_SUB_GROUP,
|
350
|
+
ml as NODE_TYPE,
|
349
351
|
cr as Next2Icon,
|
350
352
|
Fe as NextIcon,
|
351
353
|
Or as Nudge,
|
352
354
|
st as NumRangeInput,
|
353
355
|
qt as PLATFORM_EVENTS_STUDENT,
|
354
356
|
$t as PLATFORM_EVENTS_TEACHER,
|
355
|
-
|
357
|
+
ul as PYTHON_NODE_TYPES,
|
356
358
|
je as PencilIcon,
|
357
359
|
pt as PercentileInput,
|
358
360
|
zt as PerfectHits,
|
@@ -362,9 +364,9 @@ export {
|
|
362
364
|
ao as Plus2Icon,
|
363
365
|
ro as PlusIcon,
|
364
366
|
Ze as PointerIcon,
|
365
|
-
|
367
|
+
Ks as PostGameStats,
|
366
368
|
so as PracticeIcon,
|
367
|
-
|
369
|
+
Dl as PreviewWorksheet,
|
368
370
|
po as ProgressIcon,
|
369
371
|
ba as ProjectId,
|
370
372
|
Wa as ProjectOutcome,
|
@@ -372,22 +374,22 @@ export {
|
|
372
374
|
Ua as PuzzleId,
|
373
375
|
uo as QuestionIcon,
|
374
376
|
no as QuestionLetterIcon,
|
375
|
-
|
377
|
+
dl as REWARDS_LIST,
|
376
378
|
Et as RadioCard,
|
377
379
|
jr as RadioInput,
|
378
380
|
Io as RedoIcon,
|
379
|
-
|
380
|
-
|
381
|
+
ol as ReferenceSheet,
|
382
|
+
Vs as RemotePeerPointer,
|
381
383
|
To as RightIcon,
|
382
384
|
So as RulerIcon,
|
383
385
|
Ia as SATSheetSummary,
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
386
|
+
xl as SHEET_ACTIONS,
|
387
|
+
nl as SHEET_ATTEMPT_LOCATION,
|
388
|
+
cl as SHEET_ATTEMPT_LOCATION_MAP,
|
389
|
+
Il as SHEET_ATTEMPT_STATE,
|
390
|
+
il as SHEET_DATA_TYPE,
|
391
|
+
Tl as SHEET_STATE,
|
392
|
+
Os as STAGES,
|
391
393
|
zo as ScribbleIcon,
|
392
394
|
Ao as SearchIcon,
|
393
395
|
Xr as SearchableSelectInput,
|
@@ -395,31 +397,31 @@ export {
|
|
395
397
|
Zr as SelectInput,
|
396
398
|
ut as SelectionCards,
|
397
399
|
Kt as Separator,
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
400
|
+
gl as SheetError,
|
401
|
+
$s as SheetList,
|
402
|
+
yl as SheetLocked,
|
403
|
+
nf as SignUp,
|
402
404
|
Zo as SketchIcon,
|
403
405
|
Mo as Skip2Icon,
|
404
406
|
Lo as SkipIcon,
|
405
|
-
|
407
|
+
df as SplashScreen,
|
406
408
|
Ho as Star2Icon,
|
407
409
|
_o as StarIcon,
|
408
410
|
a as Stepper,
|
409
411
|
Qt as StreakIcon,
|
410
412
|
Ro as StrikedEyeIcon,
|
411
|
-
|
412
|
-
|
413
|
+
Sl as StudentDetails,
|
414
|
+
$f as SubmitMilestoneModal,
|
413
415
|
Go as SwitchIcon,
|
414
416
|
Vt as TabComponent,
|
415
417
|
ht as Tag,
|
416
|
-
|
418
|
+
Ms as TestsCreation,
|
417
419
|
Pt as Text,
|
418
420
|
Ur as TextButton,
|
419
421
|
rt as TextInput,
|
420
422
|
Bo as TickIcon,
|
421
423
|
vt as TimeLeftTimeline,
|
422
|
-
|
424
|
+
Gf as TrialSession,
|
423
425
|
bo as TrophyIcon,
|
424
426
|
Oa as Tutorial,
|
425
427
|
pr as TutoringIcon,
|
@@ -431,45 +433,45 @@ export {
|
|
431
433
|
Ko as UserIcon,
|
432
434
|
Jt as Video,
|
433
435
|
oa as WHITELIST_EVENTS,
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
436
|
+
_l as WORKSHEET_ACTION_BAR_HEIGHT,
|
437
|
+
hl as WORKSHEET_QUESTIONS_GAP,
|
438
|
+
Ll as WORKSHEET_QUESTION_WIDTH,
|
439
|
+
kl as WORKSHEET_TOP_NAVIGATION_HEIGHT,
|
438
440
|
Da as WebView,
|
439
441
|
wa as WebViewEvent,
|
440
|
-
|
442
|
+
Ol as Worksheet,
|
441
443
|
Ta as checkIfPPTNodeType,
|
442
444
|
Bt as getTheme,
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
445
|
+
Us as invalidateMilestoneResources,
|
446
|
+
Ds as invalidateMilestonesData,
|
447
|
+
Bs as invalidateTestHelpData,
|
448
|
+
Nl as isOkayTypeQuestion,
|
449
|
+
tl as isV3Worksheet,
|
450
|
+
al as isV3WorksheetAttempt,
|
451
|
+
Al as loadScript,
|
452
|
+
Vf as useAutoPlayPermission,
|
453
|
+
Pf as useCanvasSyncBroker,
|
452
454
|
ka as useCircleSounds,
|
453
|
-
|
455
|
+
bf as useClassTimeAlerts,
|
454
456
|
Gt as useContextMenuClickHandler,
|
455
457
|
Cr as useForceReload,
|
456
|
-
|
457
|
-
|
458
|
+
Gs as useGetAllMilestonesdata,
|
459
|
+
rf as useGetCircleHomeDetailsDal,
|
458
460
|
Pa as useGetLeaderboardDal,
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
461
|
+
vs as useGetMilestoneResources,
|
462
|
+
gs as useGetTestHelpData,
|
463
|
+
Of as useInClassActionDispatcher,
|
464
|
+
Rf as useInClassActionListener,
|
465
|
+
hf as useInClassMessageBroker,
|
466
|
+
Wl as useIsLearnosityLoaded,
|
465
467
|
ta as useIsTabBlocked,
|
466
|
-
|
467
|
-
|
468
|
-
|
468
|
+
Kf as useJourney,
|
469
|
+
Qs as usePointerSync,
|
470
|
+
af as usePostUpdateCircleJourneyDal,
|
469
471
|
Rt as useTrackingContext,
|
470
|
-
|
472
|
+
kf as useTrialSessionMessageBroker,
|
471
473
|
Ht as useUIContext,
|
472
|
-
|
474
|
+
wl as useWorksheetLayout,
|
473
475
|
Er as useZoomDisable
|
474
476
|
};
|
475
477
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|